如何使用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:查询以检查数组中的项目是不是包含特定字符串[重复]