Вернуть List, который не содержит заглавные буквы
Есть список stringList, элементами которого являются строки.
Необходимо написать метод correctedList(), который создаст и вернет новый список, содержащий все строки, не содержащие буквы в верхнем регистре (заглавные).
Можно ли это сделать без регулярных выражений?
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
Решение без регулярных выражений с использованием 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;
}