在Java中,我有:
String params = "depCity=PAR&roomType=D&depCity=NYC";
我想获取depCity
参数值(PAR,NYC)。
所以我创建了正则表达式:
String regex = "depCity=([^&]+)";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(params);
m.find()
返回假。m.groups()
正在返回IllegalArgumentException
。
我究竟做错了什么?
它不必是正则表达式。由于我认为没有标准的方法可以处理此问题,因此我使用的是从某处复制的内容(可能有一些修改):
public static Map<String, List<String>> getQueryParams(String url) {
try {
Map<String, List<String>> params = new HashMap<String, List<String>>();
String[] urlParts = url.split("\\?");
if (urlParts.length > 1) {
String query = urlParts[1];
for (String param : query.split("&")) {
String[] pair = param.split("=");
String key = URLDecoder.decode(pair[0], "UTF-8");
String value = "";
if (pair.length > 1) {
value = URLDecoder.decode(pair[1], "UTF-8");
}
List<String> values = params.get(key);
if (values == null) {
values = new ArrayList<String>();
params.put(key, values);
}
values.add(value);
}
}
return params;
} catch (UnsupportedEncodingException ex) {
throw new AssertionError(ex);
}
}
因此,当您调用它时,将获得所有参数及其值。该方法处理多值参数,因此使用List<String>
而不是String
,并且在您的情况下,您需要获取第一个列表元素。
问题内容: 我有这样的网址: 如何获取章节和帖子的参数值? 我的URL在Chapter参数的值中包含“&”。 问题答案: 您可以在Android中使用Uri类来完成此操作; https://developer.android.com/reference/android/net/Uri.html 这样,您甚至可以从查询参数中获取特定元素;
问题内容: 用户可以在我的网站上使用HTML表单输入URL,因此他们可以输入以下内容:http : //www.example.com?test=123&random=abc,可以是任何内容。我需要提取某个查询参数的值,在本例中为“ test”(值123)。有没有办法做到这一点? 问题答案: 你可以用与这样的: 允许将URL分为不同的部分(方案,主机,路径,查询等);在这里,我们使用它仅获取查询(
你好,我来自从URL获取JSON对象 我试着去买一顶帽子- 有人能告诉我我做错了什么吗?
我想在单击按钮时提取值。从和行和列中提取值。只是想要一个粗略的想法如何做提取和保存不同变量的值。我想在“保存”按钮下执行这些保存操作。
问题内容: 给定一个URL,我想提取域名(它不应包含“ www”部分)。网址可以包含http / https。这是我编写的Java代码。尽管它似乎运行良好,但是有没有更好的方法或有一些极端的情况可能会失败。 输入:http : //google.com/blah 输出:google.com 问题答案: 如果要解析URL,请使用java.net.URI。 java.net.URL有很多问题-它的
如何在Vue中获取查询参数。js? 例如,。 找不到获取的方法,或者我需要为此使用纯JS或一些库吗?