【发布时间】:2021-04-21 20:10:44
【问题描述】:
我想把下面的String拆分成一个Map。
String = "key_a:<value_a1>\r\n\r\nkey_b:<value_b1>\r\n\r\nkey_c:<value_c1, value_c2, value_c3>"
字符串之间可以有换行符。一个键可以有多个值,这些值由, 分隔,以< 开头,以> 结尾。
现在需要将此字符串转换为Map<String, List<String>>。
地图的结构应该是这样的:
key_a={value_a1},
key_b={value_b1},
key_c={value_c1, value_c2, value_c3}
我目前只有将不同的键值对彼此分开的逻辑,但我不知道如何实现将值彼此分开、删除括号和映射属性的逻辑.
String strBody = "key_a:<value_a1>\r\n\r\nkey_b:<value_b1>\r\n\r\nkey_c:<value_c1, value_c2, value_c3>"
Map<String, List<String>> map = Pattern.compile("\\r?\\n")
.splitAsStream(strBody)
.map(s -> s.split(":"))
//...logic for splitting values apart from each other, removing <> brackets and storing it in the map
)
【问题讨论】:
标签: java split hashmap java-stream