我有一个以下格式的字符串:
"(1,X) (3,2) (5,2) (7,2)"
基本上第一个元素可以是任何正整数,第二个元素是'1''X'或'2'。字符串可以具有不同的长度,最小值是一个元素。我想拆分这个字符串并存储每个
(int, String)
在HashMap中配对,其中int充当键,String是对象。我不太确定如何在这里使用拆分方法,并希望获得简短的指导。
答案 0 :(得分:1)
你似乎在寻找的是
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
的群组
[)]
代表)
文字