如果我有一个名称数组,如何检查它们是否都以使用 forall 的大写字母开头(或其他功能(?
String[] names = {"Linda", "Peter", "Carol", "Paul"};
names.forall(name -> Character.isUpperCase(name.charAt(0)));
这是错误的,我还不太熟悉高阶函数,所以我可以使用一些帮助。
使用Stream.allMatch
:
String[] names = {"Linda", "Peter", "Carol", "Paul"};
boolean allUpper = Arrays.stream(names).allMatch(name -> Character.isUpperCase(String.codePointAt(0)));
在 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 字符。