gpt4 book ai didi

java - 将字符串拆分为 hashmap

转载 作者:行者123 更新时间:2023-12-02 02:25:37 25 4
gpt4 key购买 nike

String str="ABCD 1 key1=value1 key2=value2 key3=value3";

我想将上面的字符串转换成键值对

Map<String, String> map = new HashMap<String, String>();

如果我想访问key1,那么它应该返回value1例如:map.get("key1") 应该返回 value1。

请帮助我找到一种有效的方法将其转换为hashmap

最佳答案

可能最安全的方法是为键/值对定义正则表达式模式,然后迭代字符串,应用该模式。在这种情况下,我们可以尝试使用以下模式:

\b([^\s]+)=([^\s]+)\b

键和值将分别作为第一个和第二个捕获组提供。需要一些细微的处理,因为并非所有字符串都是键值(即主要内容不属于最终 map )。

Map<String, String> map = new HashMap<>();
String str="ABCD 1 key1=value1 key2=value2 key3=value3";
String pattern = "\\b([^\\s]+)=([^\\s]+)\\b";

Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(str);

while (m.find()) {
System.out.println("Found a key/value: (" + m.group(1) + ", " + m.group(2) + ")");
map.put(m.group(1), m.group(2));
}

上面的代码片段输出如下:

Found a key/value: (key1, value1)
Found a key/value: (key2, value2)
Found a key/value: (key3, value3)

Demo

关于java - 将字符串拆分为 hashmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47826665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com