java - 如何在 Java 中将带有参数的 uri 解析为 Map

标签 java parsing dictionary

我想解析以下内容:

full_uri= "path/for/uri?$param1=value1&$param2=value2

以某种方式将 uri 作为字符串,将参数作为映射。我现在正在尝试的是:

String[] full_uri_split = full_uri.split("\\?");
String uri = full_uri_split[0];
String parameters = full_uri_split[1];

这给了我 2 个变量,1 个是 uri,另一个是包含所有参数的字符串,格式为:

parameters = "$param1=value1&$param2=value2"

我的下一个最佳猜测是将其拆分为 & 符号:

String parameters_split = parameters.split("&");

返回:

["$param1=value1", "$param2=value2"]

现在我想将其转换为如下所示的 map :

"param1":"value1",
"param2":"value2"

我不知道该怎么做。

我确信我可以通过进行更多的分割来让它工作,但它看起来效率非常低。所以本质上,我想转向:

full_uri = "path/for/uri?$param1=value1&$param2=value2"

进入

uri = "path/for/uri"
params = {
    "param1": "value1",
    "param2": "value2"
}

最佳答案

这是一个使用循环的解决方案。

Map<String, String> params = new HashMap<>();
for (String s : parameters_split){
    params.put(s.split("=")[0], s.split("=")[1]);
}

关于java - 如何在 Java 中将带有参数的 uri 解析为 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34322812/

相关文章:

c++ - 将 vector 填充到 map 中

java - 无法打印 Long 除法和乘法的值

java - [t5.2.6]在循环内生成区域,然后更新其中的一些区域

java - Java 中 'new' 运算符的真正意义是什么?

mysql - 使用mysql解析json

swift - 插入字典 int 和 string 不起作用(swift4)

dictionary - 字典 vs NamedTuples

java - Android自定义复合组件的内容不会出现

java - Java 中类的问题

c - 源到源操作