gpt4 book ai didi

java - 如何将 "key1:value1, value, key2:value3"字符串解析为 ArrayLists?

转载 作者:行者123 更新时间:2023-11-29 03:07:15 25 4
gpt4 key购买 nike

我有一个字符串

String line = "abc:xyz uvw, def:ghi, mno:rst, ijk:efg, abc opq";

我想把这个字符串解析成两个列表:

ArrayList<String> tags;
ArrayList<String> values;

标签是冒号前的单词(在我的示例中:abcdefijkmno)。这就是我想要的

tags = Arrays.asList("abc", "def", "mno", "ijk");
values = Arrays.asList("xyz uvw", "ghi", "rst", "efg, abc opq");

请注意,值中可以包含空格逗号,并且不能只是一个单词。

最佳答案

由于您的值可以包含逗号,因此您需要在找到key 时进行拆分。

key 被定义为 : 之前的单词。

因此,您的拆分模式将是 ", (?=[a-zA-z]+:)"这会按指定顺序检查 comma space chars colon,查找字符和冒号。

检查 key,并使用 lookahead 进行拆分(从而保持 key 完好无损)。这将为您提供一组键值对

然后你可以用 : 拆分来获取键和值。

String str = "Your string";
String[] keyValuePairs = str.split(", (?=[a-zA-z]+:)");
for (String keyValuePair : keyValuePairs) {
String[] keyvalue = keyValuePair.split(":");
keysArray.add(keyvalue[0]);
valuesArray.add(keyvalue[1]);
}

关于java - 如何将 "key1:value1, value, key2:value3"字符串解析为 ArrayLists?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31532189/

25 4 0