使用 split 方法在 HashMap 中存储值
Using split method to store values in HashMap
我有以下格式的字符串:
"(1,X) (3,2) (5,2) (7,2)"
基本上第一个元素可以是任何正整数,第二个元素可以是'1''X'或'2'。字符串可以有不同的长度,最小长度是一个元素。我想拆分这个字符串并存储每个
(int, String)
在 HashMap 中配对,int 作为键,String 作为对象。我不太确定如何在这里使用拆分方法,如果能提供简短的指导,我将不胜感激。
您似乎在寻找的是
for each data like "(number,[1 OR X OR 2])" in text
map.put(number, value)
您可以使用 Pattern/Matcher 轻松完成。所以你需要像
这样的代码
Map<String,String> map = new HashMap<>();
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(data);
while(m.find()){
map.put(m.group("number"), m.group("value"));
}
您的正则表达式可以看起来像 [(](?<number>\d+),(?<value>[1X2])[)]
其中
[(]
表示(
字面量
(?<number>\d+)
表示名为 number
的组存储一个或多个数字
(?<value>[1X2])
表示名为 value
的组存储 1
或 X
或 2
[)]
表示)
字面量
我有以下格式的字符串:
"(1,X) (3,2) (5,2) (7,2)"
基本上第一个元素可以是任何正整数,第二个元素可以是'1''X'或'2'。字符串可以有不同的长度,最小长度是一个元素。我想拆分这个字符串并存储每个
(int, String)
在 HashMap 中配对,int 作为键,String 作为对象。我不太确定如何在这里使用拆分方法,如果能提供简短的指导,我将不胜感激。
您似乎在寻找的是
for each data like "(number,[1 OR X OR 2])" in text
map.put(number, value)
您可以使用 Pattern/Matcher 轻松完成。所以你需要像
这样的代码Map<String,String> map = new HashMap<>();
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(data);
while(m.find()){
map.put(m.group("number"), m.group("value"));
}
您的正则表达式可以看起来像 [(](?<number>\d+),(?<value>[1X2])[)]
其中
[(]
表示(
字面量(?<number>\d+)
表示名为number
的组存储一个或多个数字(?<value>[1X2])
表示名为value
的组存储1
或X
或2
[)]
表示)
字面量