【发布时间】:2020-06-28 07:46:20
【问题描述】:
我有这个列表["z", "1", "3", "x", "y", "00", "x", "y", "4"],在这种情况下,我需要获取字符串00 之后的第一个Integer 元素4。我正在使用 Java 8 流,但欢迎使用任何其他方法。这是我的入门代码
myList.stream()
// Remove any non-Integer characters
.filter((str) -> !"x".equals(str) && !"y".equals(str) && !"z".equals(str))
.findFirst()
.orElse("");
这让我从删除所有非整数字符串开始,但给了我1。现在我需要得到4,这是00 之后的第一个元素。我应该在过滤器中添加什么?
【问题讨论】:
-
在这种情况下可能不适合使用流
-
@Lebecca 我认为这将使我的代码整洁:-)。 Anywhoo,lemmi 寻找另一种方式
-
是“00”是固定的还是变化的??
-
为什么不直接获取 indexOf "00" 并使用 stream.skip(index).filter(str->isInteger(str)).findFirst()
-
您可以使用
dropWhile并继续在mylist.stream().dropWhile(s -> !s.equals("00")).filter...中将过滤器与Java-9+ 一起使用,但重要的是问题陈述是关于获取整数的,而且在模式@987654331 之后也是如此@.
标签: java java-8 java-stream