我有一个字符串列表,例如"/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)
我能够思考到以上问题。如何最终收集整数列表中所有第三个元素。
int index = 3; List<Integer> result = Arrays.asList("/100/200/300", "/200/300", "/100/200/400").stream() .map(m -> Arrays.stream(m.split("/")).filter(s -> !s.isEmpty()).collect(Collectors.toList())) .filter(l -> l.size() == index) .map(l -> Integer.valueOf(l.get(index - 1))) .collect(Collectors.toList());
- Youcef LAIDANIfilter(s -> !s.isEmpty())
,这将忽略开头的空结果,这意味着index
应该是3
而不是4
。 - Youcef LAIDANI