如何使用forAll检查数组中的所有字符串是不是以大写字母开头?

Posted

技术标签:

【中文标题】如何使用forAll检查数组中的所有字符串是不是以大写字母开头?【英文标题】: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); 【参考方案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 字符。

【讨论】:

以上是关于如何使用forAll检查数组中的所有字符串是不是以大写字母开头?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查字符串是不是包含字母表中的所有字母? [复制]

检查数组中的所有元素是不是都是字符串[重复]

mongodb:查询以检查数组中的项目是不是包含特定字符串[重复]

如何检查字符串是不是以回文开头?

如何检查数组元素是不是为空以避免Java中的NullPointerException

Java - 如何检查字符串是不是包含字符串数组的元素?