Javascript 如何将JS嵌套的some()逻辑转换为Java
因此,我在一些UI代码中遇到了这个函数,我正试图用Java复制这些代码,以进一步了解该语言Javascript 如何将JS嵌套的some()逻辑转换为Java,javascript,java,stream,Javascript,Java,Stream,因此,我在一些UI代码中遇到了这个函数,我正试图用Java复制这些代码,以进一步了解该语言 //dataRows is of type List<String[]> that contains lines from a csv const hasQuotes = dataRows.some(dataRow => ( dataRow.slice(1).some(value => value.toString().includes('"')) ));
//dataRows is of type List<String[]> that contains lines from a csv
const hasQuotes = dataRows.some(dataRow => (
dataRow.slice(1).some(value => value.toString().includes('"'))
));
//dataRows属于包含csv中的行的列表类型
const hasQuotes=dataRows.some(dataRow=>(
部分(value=>value.toString()。包括(“”))
));
我一直在试图找出如何有效地复制这个Java,我尝试使用stream()中的anyMatch()但是我不知道如何将次要的some函数嵌套在原始函数中。您可以使用
java.util.stream
包。List
s继承一个fromCollection
来获取集合的流,对于其中的数组,您可以通过方法获取流
…或类似的内容。稍微详细一点的版本:
final boolean hasQuotes = dataRows.stream().anyMatch(dataRow -> {
return Arrays.stream(dataRow, 1, dataRow.length).anyMatch(value -> {
return value.indexOf('"') != -1);
});
});
旁注:最初我有String.valueOf(value)
而不仅仅是上面的值
,以忠实于JavaScript原文,但是如果你有一个列表
,你不需要它;你知道值
是一个字符串
@Haq.H-不用担心!很高兴这有帮助。我刚刚意识到我在翻译中有点直译,请看我在结尾添加的注释。Happy co叮!
final boolean hasQuotes = dataRows.stream().anyMatch(dataRow -> {
return Arrays.stream(dataRow, 1, dataRow.length).anyMatch(value -> {
return value.indexOf('"') != -1);
});
});