【问题标题】:How to check if all strings in an array start with upper case letter using forAll?如何使用forAll检查数组中的所有字符串是否以大写字母开头?
【发布时间】:2019-09-25 22:01:55
【问题描述】:

如果我有一组名称,如何使用 forall(或其他功能)检查它们是否都以大写字母开头?

String[] names = {"Linda", "Peter", "Carol", "Paul"};
names.forall(name -> Character.isUpperCase(name.charAt(0))); 

这是错误的,我对高阶函数还不是很熟悉,所以我可以使用一些帮助。

【问题讨论】:

  • names是一个数组,数组上没有forall方法。
  • 您正在尝试在 Java 中使用 forEach 函数,对吧?然后使用这个:public static void main(String []args){ String[] names = {"Linda", "Peter", "Carol", "Paul"}; for(String myName : names){ if(Character.isUpperCase(myName.codePointAt(0))){ System.out.println(myName); } } }

标签: java uppercase forall functional-java


【解决方案1】:

使用Stream.allMatch:

String[] names = {"Linda", "Peter", "Carol", "Paul"};
boolean allUpper = Arrays.stream(names).allMatch(name -> Character.isUpperCase(String.codePointAt(0)));

【讨论】:

    【解决方案2】:

    在 Java 8+ 中:

    Arrays.stream(names).allMatch(name -> Character.isUpperCase(name.codePointAt(0)));
    

    或者:

    Stream.of(names).allMatch(name -> Character.isUpperCase(name.codePointAt(0)));
    

    请注意,我将 charAt(0) 替换为 codePointAt(0),因此它支持补充平面中的 Unicode 字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 2016-01-05
      • 1970-01-01
      • 2012-10-09
      相关资源
      最近更新 更多