Проверьте, содержит ли URL какой-либо параметр или не использует регулярное выражение - PullRequest
2 голосов
/ 03 февраля 2012

Как проверить, содержит ли URL один или несколько параметров или нет?

Например, если URL-адрес

.../PaymentGatewayManager?mode=5015

тогда мы должны знать, что URL содержит один параметр. Или, если URL-адрес

.../PaymentGatewayManager

тогда мы должны знать, что URL не содержит никаких параметров. Или, если URL-адрес

.../PaymentGatewayManager?mode=5015&test=456123&abc=78

тогда мы должны знать, что URL содержит три параметра, и мы также должны знать имя параметра и его значения, используя любое регулярное выражение в Java.

Ответы [ 3 ]

5 голосов
/ 03 февраля 2012

Если вы хотите сделать это с помощью регулярного выражения (это также можно оптимизировать для поиска внутри группы):

public static void main(String[] args) {
    String input = ".../PaymentGatewayManager?mode=5015&test=456123&test2=SomeRandomValue&abc=78";
    if(input.contains("?")){
        System.out.println("It does contain parameters");
        input = "&" + input.substring(input.indexOf("?")+1) + "&";

        System.out.println(input);

        Pattern p = Pattern.compile("&?(\\w.+?)=(.+?)&");
        Matcher m = p.matcher(input);

        while(m.find()){
            System.out.println("Token ->" + m.group(1));
            System.out.println("Value ->" + m.group(2));
        }
    }
}
3 голосов
/ 03 февраля 2012

Используйте методы java.net.URI , чтобы получить все об URL.

Редактировать: Использовать URI, а не URL (спасибо Макдауэллу).

2 голосов
/ 03 февраля 2012

Вы можете String.split() URL или токенизировать его, используя java.util.StringTokenizer, используя ? в качестве символа разделителя. Если вы получаете более одного куска, значит, URL-адрес содержит параметры.

Чтобы получить параметры, разделите вторую часть на & таким же образом. Вы получите параметры. Разделив каждый из них на =, вы получите имена и значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...