【问题标题】:Is there a Java equivalent for Python's all()? [duplicate]Python 的 all() 是否有 Java 等价物? [复制]
【发布时间】:2016-07-05 06:09:54
【问题描述】:

我有数千个 Markdown 模板文件与具有实际内容的 Markdown 文件混合在一起。以下 python sn -p 检查每个符合以下所有条件的降价文件文件。如果为真,我知道它是一个模板,它被移动到同一目录中的模板文件夹中。

我被要求转换此代码以适应一些现有的 java 代码,是否有与 python 的all() 等效的 java 或者我需要采取不同的方向。我对java不是很熟悉,除了apache.commons中的startswith()函数外,我的搜索没有发现任何东西。

for i, fpath in enumerate(md_list):
        with open(fpath) as f:
            result = all(line.startswith('#') or line.startswith('[') or
                         line.startswith('|') or line.startswith('(') or
                         line.isspace() for line in f);
            if result is True: do something

【问题讨论】:

    标签: java python


    【解决方案1】:

    你可以定义你的方法,像这样:

    public static boolean areAllTrue(boolean[] array)
    {
        for(boolean b : array) if(!b) return false;
        return true;
    }
    

    使用集合的东西:

    Set<Boolean> flags = new HashSet<Boolean>(myArray);
    flags.contains(false);
    

    或者

     Arrays.asList(myArray).contains(false)
    

    显然,您首先需要创建布尔数组进行检查。

    【讨论】:

    • 好的,第一个例子应该可以满足我的需求。感谢您的回复并发布上面的链接。
    【解决方案2】:

    如果您使用 Java 8,则有一个 allMatch 函数

    lines.stream().allMatch(line -> condition1(line) && condition2(line)...)
    

    【讨论】:

    • 我喜欢这个,但我们将发送代码的大多数系统仍在 Java 7 上。感谢您的回复。
    猜你喜欢
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 2021-05-14
    • 2011-05-28
    • 1970-01-01
    相关资源
    最近更新 更多