我想知道如何实现以下目标。“t12345-g1234-o1234”我有一行包含由连字符分隔的多个字段,该字段由其标识符(第一个字母)和值组成。如何使用 java 8 流实现如下所示的地图。{"t","12345"}, {"g","1234"}, {"o","1234"}编辑我尝试了以下方法,但我不明白如何获取子字符串信息。Arrays.stream(line.split("-"))
.collect(Collectors.toMap(String::substring(0,1),String::substring(1));
2 回答
杨__羊羊
TA贡献1943条经验 获得超7个赞
您可以使用 Collectors.toMap
Map<String, String> result = Arrays.stream(s.split("-")) .collect(Collectors.toMap(part -> part.substring(0, 1), part -> part.substring(1)));
第一个参数toMap
是 keyMapper。它选择键作为拆分字符串部分的第一个字符。part.substring(0, 1)
- 它将返回从长度为 1(这是第一个字符)的索引 0 开始的子字符串。
第二个参数是 valueMapper。第一个字符之后是其余部分。part.substring(1)
- 返回从索引 1 开始的子字符串(由于没有指定结束索引,它将被视为part.length
.
添加回答
举报
0/150
提交
取消