我有一个列表[z”,“1”,“3”,“x”,“y”,“00”,“x”,“y”,“4”],在这种情况下,我需要得到字符串00
后的第一个整数元素。我正在使用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
之后的第一个元素。我应该向过滤器添加什么?
您可以尝试下面的代码。
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("z", "1", "3", "x", "y", "00", "x", "y", "4");
String str = "00";
Optional<String> dataOptional = list.stream().skip(list.indexOf(str)+1).filter(s -> {
try {
Integer.parseInt(s);
return true;
} catch (NumberFormatException n) {
return false;
}
}).findFirst();
if (dataOptional.isPresent()) {
System.out.println("Data is :: " + dataOptional.get());
} else {
System.out.println("No integer present after given string");
}
}
}
确保str在列表中,否则它将返回列表中的第一个整数。
也许是一个简单的for循环。比流表达式更具可读性,也更通用,因为像“x”和“y”这样的字符串不会硬编码到其中。
boolean found00 = false;
int intAfter00 = -1;
for(String str: myList) {
if("00".equals(str)) {
found00 = true; //from this point we look for an integer
continue;
}
if(found00) { //looking for an integer
try {
intAfter00 = Integer.parseInt(str);
} catch(Exception e) {
continue; //this was not an integer
}
break;
}
}
//If intAfter00 is still -1 here then we did not found an integer after 00
从评论中获得。
String result = myList.stream().skip(myList.indexOf("00") + 1)
.filter((str) -> !"x".equals(str) && !"y".equals(str) && !"z".equals(str))
.findFirst()
.orElse("");
我试图列出整数列表中的重复元素,例如, 使用jdk 8的流。有人试过吗?要删除重复项,我们可以使用distinct() api。但是如何找到重复的元素呢?有人能帮我吗?
我有以下几门课: 我有一个物品清单。我想遍历列表并找到具有特定ID的实例。我试着通过溪流来做。
额外的问题:我如何得到插值的结果,其中确切的时间戳的值是线性插值之间的两个周围的值?
问题内容: 我对如何在Java中执行此操作有一般的想法,但是我正在学习Python,但不确定如何执行。 我需要实现一个函数,该函数返回一个包含列表中所有其他元素的列表,从第一个元素开始。 到目前为止,我不确定从这里开始该怎么做,因为我只是在学习Python中的for循环是如何不同的: 问题答案:
我刚刚开始玩Java 8 lambda,我正在尝试实现一些我在函数式语言中习惯的东西。 例如,大多数函数语言都有某种对序列进行操作的find函数,或返回第一个元素的列表,该元素的谓词为。我能看到的在《Java八号》中实现这一点的唯一方法是: 然而,这似乎没有效率,因为过滤器将扫描整个列表,至少在我的理解(这可能是错误的)。有更好的办法吗?
问题内容: 我在页面上有以下HTML代码: 在我中,我有以下选择器来设置元素的样式。上面的HTML代码只是整个代码的一小部分;有更多的包裹属于一个shadowbox: 因此,我的元素样式正确,但是我也想在HTML中设置标签样式。 CSS选择器可能吗?如果是的话,我该怎么做? 问题答案: 这称为相邻的兄弟选择器。