我有一个字符串列表,例如 "/100""/100/200"
。
我希望通过 /
拆分这些字符串,然后得到一个整数列表列表,例如 [[100],[100,200]]
。
如果该列表足够长,我想遍历这个列表列表并从每个列表中获取第 n 个元素,否则移动到下一个列表。
众所周知,每个内部列表的最大长度为n
。
示例:
n= 3
slashString -> "/100/200/300","/200/300","/100/200/400"
在上面的例子中,我想要一个 300,400
的整数列表。
List<Integer> output = slashString.stream()
.map(x->Arrays.stream(x.split("/")).collect(Collectors.toList()))
.filter(x->x.size()==3)
我能想到以上。我最终将如何收集所有整数列表中的第三个元素。
最佳答案
你快到了。
过滤大小为3的列表后,获取第三个元素并将其转换为Integer。
另外,请注意拆分字符串 /100/200
会得到一个 String[]
(["", "100", "200"]
) 以 空字符串 作为第一个元素。所以,我使用 skip(1)
List<Integer> result = slashString.stream()
.map(x-> Arrays.stream(x.split("/"))
.skip(1)
.collect(Collectors.toList()))
.filter(x -> x.size() >= 3)
.map(list -> Integer.valueOf(list.get(2)))
.collect(Collectors.toList());
关于java - 使用 Java 流从列表中获取第 n 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51229931/