3 回答

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊
去掉開(kāi)頭和結(jié)尾的[和]。21:[1,2,3],22:[1,2,3]
2.對(duì)]進(jìn)行字符串分割,
對(duì)于每個(gè)元素,字符串再次拆分為:[。
第一個(gè)元素是您的 Map 鍵 第二個(gè)元素(逗號(hào)分隔)可以使用數(shù)組轉(zhuǎn)換轉(zhuǎn)換為列表

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
一些直接的常規(guī):
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貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
刪除方括號(hào)( [ )
removeAll("\\[","")
刪除最后一個(gè)方括號(hào) ( ] ,") 以及結(jié)尾的逗號(hào) ( , ) 并替換為全冒號(hào) ( : )
removeAll("\\[",":")
替換字符串末尾的雙方括號(hào)
removeAll("\\]]","")
使用分割剩余的字符串
split(":")
然后循環(huán)
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))
結(jié)果
添加回答
舉報(bào)