使用split方法在HashMap中存储值

时间:2015-05-31 20:39:15

标签: java string split hashmap

我有一个以下格式的字符串:

"(1,X) (3,2) (5,2) (7,2)"

基本上第一个元素可以是任何正整数,第二个元素是'1''X'或'2'。字符串可以具有不同的长度,最小值是一个元素。我想拆分这个字符串并存储每个

(int, String) 

在HashMap中配对,其中int充当键,String是对象。我不太确定如何在这里使用拆分方法,并希望获得简短的指导。

1 个答案:

答案 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])表示存储value1X
  • 的名为2的群组
  • [)]代表)文字