使用流和子字符串的java HashMap
我想知道如何实现以下目标
"t12345-g1234-o1234"
我有一行包含多个由连字符分隔的字段,该字段由其标识符(第一个字母)和值组成
如何使用Java8流实现下面这样的映射
{"t","12345"} , {"g","1234"}, {"o","1234"}
编辑
我尝试了以下方法,但不知道如何获取子字符串信息
Arrays.stream(line.split("-"))
.collect(Collectors.toMap(String::substring(0,1),String::substring(1));
# 1 楼答案
您可以使用
Collectors.toMap
toMap
的第一个参数是键映射器。它选择键作为分割字符串部分的第一个字符part.substring(0, 1)
-它将返回从长度为1(第一个字符)的索引0开始的子字符串第二个参数是valueMapper。第一个字符后面是其余字符
part.substring(1)
返回从索引1开始的子字符串(因为没有指定结束索引,所以它将被视为part.length
)# 2 楼答案
大概是这样的:
我在这里用了Pair