亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將字符串轉換為具有逗號分隔列表值的映射?

如何將字符串轉換為具有逗號分隔列表值的映射?

長風秋雁 2023-11-01 21:58:52
我有一個格式為“[21:[1,2,3],22:[1,2,3]]”的字符串。我該如何將其轉換為以列表作為值的鍵值映射?
查看完整描述

3 回答

?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

去掉開頭和結尾的[和]。21:[1,2,3],22:[1,2,3]

2.對]進行字符串分割,

  1. 對于每個元素,字符串再次拆分為:[。

    第一個元素是您的 Map 鍵 第二個元素(逗號分隔)可以使用數組轉換轉換為列表


查看完整回答
反對 回復 2023-11-01
?
慕標5832272

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]


查看完整回答
反對 回復 2023-11-01
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

  1. 刪除方括號( [ ) removeAll("\\[","")

  2. 刪除最后一個方括號 ( ] ,") 以及結尾的逗號 ( , ) 并替換為全冒號 ( : )removeAll("\\[",":")

  3. 替換字符串末尾的雙方括號removeAll("\\]]","")

  4. 使用分割剩余的字符串split(":")

  5. 然后循環

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))

結果

https://img1.sycdn.imooc.com/654259d40001539306510093.jpg

查看完整回答
反對 回復 2023-11-01
  • 3 回答
  • 0 關注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號