我有一个字符串列表,如“/ 100”“/ 100/200”.
我希望用/分割这些字符串,然后得到一个整数列表列表,如[[100],[100,200]].
我想遍历这个列表列表,如果该列表足够长,则从每个列表中获取第n个元素,否则移动到下一个列表.
我希望用/分割这些字符串,然后得到一个整数列表列表,如[[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个元素.
解决方法
只需将每个List映射到List的第3个元素并收集:
List<Integer> list = Stream.of ("100/200/300","200/300","100/200/400") .map(x->Arrays.stream(x.split("/")).collect(Collectors.toList())) .filter(x->x.size()==3) .map(l->Integer.valueOf (l.get(2))) .collect(Collectors.toList());
请注意,您必须消除输入字符串的前导/.否则,第1和第3列表的长度将为4,并且它们将不会通过过滤器.或者您可以要求列表大小为4而不是3(并将l.get(2)更改为l.get(3)).
原文地址:https://www.jb51.cc/java/125768.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。