3 回答

TA貢獻1860條經驗 獲得超8個贊
去掉開頭和結尾的[和]。21:[1,2,3],22:[1,2,3]
2.對]進行字符串分割,
對于每個元素,字符串再次拆分為:[。
第一個元素是您的 Map 鍵 第二個元素(逗號分隔)可以使用數組轉換轉換為列表

TA貢獻1966條經驗 獲得超4個贊
一些直接的常規:
String s = "[21:[1,2,3],22:[1,2,3],23:[6:[1,2],7:[3,4]]]"
Map res = Eval.me s
assert [1,2,3] == res[22]
assert [3,4] == res[23][7]

TA貢獻1808條經驗 獲得超4個贊
刪除方括號( [ )
removeAll("\\[","")
刪除最后一個方括號 ( ] ,") 以及結尾的逗號 ( , ) 并替換為全冒號 ( : )
removeAll("\\[",":")
替換字符串末尾的雙方括號
removeAll("\\]]","")
使用分割剩余的字符串
split(":")
然后循環
String x = "[21:[1,2,3],22:[1,2,3]]";
final HashMap<String,List<String>> test = new HashMap<>();
final String s = x.replaceAll("\\[", "").replaceAll("\\],", ":").
replaceAll("\\]]", "");
final String[] split = s.split(":");
for(int i =0;i<split.length;i++)
test.put(split[i],Arrays.asList(split[++i]));
test.forEach((k,v)-> System.out.println(k +" " +v))
結果
添加回答
舉報