Java 如何检查参数是否以最简单的形式存在于URL中
我想解析一个字符串,它基本上是一个URL。我只需要检查一个参数是否传递给它 因此将返回true将返回false,并且将返回true,因为设置了paramJava 如何检查参数是否以最简单的形式存在于URL中,java,Java,我想解析一个字符串,它基本上是一个URL。我只需要检查一个参数是否传递给它 因此将返回true将返回false,并且将返回true,因为设置了param 我猜它会涉及某种正则表达式。Java有一个用于处理URL的内置库: 您可以从字符串创建URL对象并提取查询部分: URL url = new URL(myString); String query = url.getQuery(); 然后绘制键和值的地图: Map params<string, string> = new Hash
我猜它会涉及某种正则表达式。Java有一个用于处理URL的内置库: 您可以从字符串创建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);
}
Map params=newhashmap();
字符串[]strParams=query.split(“&”);
for(字符串参数:strParams)
{
字符串名称=参数拆分(“=”[0];
字符串值=参数拆分(“=”[1];
参数put(名称、值);
}
然后用params.containsKey(键)检查所需的参数代码>
不过,可能有一个库可以为您完成所有这些工作,所以请先看一看。它会引发一个异常,URL可能格式不正确,我们不必在意,因为它可能基于一个稍后将展开的表达式。@geoaxis:然后您必须进行一些处理以提取查询字符串。。。这取决于您的URL的“格式错误”程度(例如,它们是否可以包含未替换的?
,&
,=
,等等)。我建议myString.split(“?”)[1]
作为第一个剪切。@dacwe:格式良好的url不能包含&;它将包含%26amp%3B
可能重复的
String url = "http://a.b.c/?a=1&b=2.....¶m=2";
String key = "param";
if(url.contains("?" + key + "=") || url.contains("&" + key + "="))
return true;
else
return false;