使用 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 的组存储 1X2
  • [)]表示)字面量