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

问题描述 投票:-1回答:2

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

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

这是错误的,我对高阶函数并不十分熟悉,因此我可以使用一些帮助。

java uppercase forall functional-java
2个回答
1
投票

使用Stream.allMatch

Stream.allMatch

1
投票

在Java 8+中:

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

或:

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

请注意,我用Stream.of(names).allMatch(name -> Character.isUpperCase(name.codePointAt(0))); 替换了charAt(0),因此它在补充平面中支持Unicode字符。

© www.soinside.com 2019 - 2024. All rights reserved.