如何以最简单的形式检查URL中是否存在参数

时间:2011-05-20 10:31:05

标签: java

我想解析一个基本上是URL的字符串。我需要检查一下参数是否传递给它。

所以http://a.b.c/?param=1将返回true http://a.b.c/?no=1将返回false并且http://a.b.c/?a=1&b=2.....&param=2将返回true,因为param已设置

我猜它会涉及某种正则表达式。

2 个答案:

答案 0 :(得分:6)

Java有一个用于处理网址的内置库:Spec for URL here

您可以从字符串创建URL对象并提取查询部分:

URL url = new URL(myString);
String query = url.getQuery();

然后制作键和值的映射:

Map params<string, string> = new HashMap<string, string>();
String[] strParams = query.split("&");
for (String param : strParams)  
{  
    String name = param.split("=")[0];  
    String value = param.split("=")[1];  
    params.put(name, value);  
}

然后使用params.containsKey(key);

检查所需的参数

可能有一个图书馆为你做了这一切,所以先来看看。

答案 1 :(得分:0)

String url = "http://a.b.c/?a=1&b=2.....&param=2";
String key = "param";
if(url.contains("?" + key + "=") || url.contains("&" + key + "="))
    return true;
else
    return false;