javascript - 如何将 JS 嵌套的 some() 逻辑转换为 Java

标签 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('"'))
    ));

我一直在试图找出如何有效地复制这个 Java,我尝试使用 stream() 中的 anyMatch() 但我无法弄清楚如何在原始函数中嵌套次要函数。

最佳答案

您可以使用 java.util.stream包裹。 List我们继承了一个 stream method来自 Collection要获取集合的流以及其中的数组,您可以获得 Stream通过 Arrays.stream 方法。流有 anyMatch .所以

final boolean hasQuotes = dataRows.stream().anyMatch(dataRow ->
    Arrays.stream(dataRow, 1, dataRow.length).anyMatch(value -> value.indexOf('"') != -1)
);

...或者类似的东西。稍微详细一点的版本:

final boolean hasQuotes = dataRows.stream().anyMatch(dataRow -> {
    return Arrays.stream(dataRow, 1, dataRow.length).anyMatch(value -> {
        return value.indexOf('"') != -1);
    });
});

旁注:最初我有 String.valueOf(value)而不仅仅是 value以上,忠实于 JavaScript 原件,但如果你有一个 List<String[]> ,你不需要那个;你知道 valueString .

关于javascript - 如何将 JS 嵌套的 some() 逻辑转换为 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58998162/

相关文章:

c# - 对于来自 URL 的大文件,在 ZipArchive 中抛出“System.OutOfMemoryException”

node.js - 将麦克风输入流式传输到 Google Speech API

javascript - 为什么 (focus) 在此 angular2 示例中不起作用?

java - 如何在 Java 中泛化适配器类

java - 使用类似 'Select * from some_table where some condition' 的查询从数据库创建 Pdf

java - 将匿名函数传递给方法,存储它并执行它?

c# - Windows 8.1 音频流不在后台播放

javascript - Ionic 2,在启动画面之后和主页之前出现白色空白屏幕

javascript - 在对象数组中查找最大值,其中数字是字符串的一部分,最佳解决方案并编写测试

javascript - 三.JS OBJ模型不显示