Вернуть List<String>, который не содержит заглавные буквы

Рейтинг: 0Ответов: 1Опубликовано: 16.02.2023

Есть список stringList, элементами которого являются строки.

Необходимо написать метод correctedList(), который создаст и вернет новый список, содержащий все строки, не содержащие буквы в верхнем регистре (заглавные).

Можно ли это сделать без регулярных выражений?

Ответы

▲ 1

Решение без регулярных выражений с использованием Stream API (из упомянутого ответа):

public static List<String> correctedList(List<String> stringList) {
   return stringList.stream()
       .filter(str -> str.chars().noneMatch(Character::isUpperCase))
       .collect(Collectors.toList());
}

Аналогичное классическое решение (до Java 8):

public static List<String> correctedList(List<String> stringList) {
    List<String> result = new ArrayList<>();
    for (String str : stringList) {
        boolean noCaps = true;
        for (char c : str.toCharArray()) {
            if (Character.isUpperCase(c)) {
                noCaps = false;
                break;
            }
        }
        if (noCaps) {
            result.add(str);
        }
    }
    return result;
}