Как проверить, все ли строки в массиве начинаются с заглавной буквы, используя forAll? - PullRequest
0 голосов
/ 26 сентября 2019

Если у меня есть массив имен, как я могу проверить, все ли они начинаются с заглавной буквы, используя forall (или что-то еще функциональное)?

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

, что неправильно, и я недействительно знаком с функциями высшего порядка, поэтому я мог бы использовать некоторую помощь.

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

В 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), поэтому он поддерживает символы Юникода в дополнительных плоскостях.

1 голос
/ 26 сентября 2019

Использование Stream.allMatch:

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