Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查参数是否以最简单的形式存在于URL中_Java - Fatal编程技术网

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

Java 如何检查参数是否以最简单的形式存在于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

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

因此将返回true将返回false,并且将返回true,因为设置了param


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

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.....&param=2";
String key = "param";
if(url.contains("?" + key + "=") || url.contains("&" + key + "="))
    return true;
else
    return false;