Если у вас есть список строк (List<String>
) и вам требуется найти определённую строку в этом списке (или проверить, что список содержит нужную строку), вы можете это легко сделать несколькими способами:
- С помощью стримов (этот способ подходит для Java 8 и выше)
- С помощью итерирования по списку
Поиск строк с помощью стримов
Данный способ доступен для версии Java 8 и выше:
List<String> langs = new ArrayList<>(); langs.add("Java"); langs.add("JavaScript"); langs.add("Kotlin"); langs.add("Scala"); langs.add("Groovy"); langs.add("Python"); List<String> result = langs.stream() .filter(lang -> lang.contains("Java")) .collect(Collectors.toList()); System.out.println(result);
В консоль выведется:
[Java, JavaScript]
Чтобы учитывать полные совпадения строки, можно заменить эту строчку в коде:
.filter(lang -> lang.contains("Java"))
на следующую:
.filter(lang -> lang.equals("Java"))
В этом случае вывод в консоль будет следующим:
[Java]
Если же нужно просто проверить, есть ли искомая строка в списке, можно упростить код:
boolean result = langs.stream().anyMatch(lang -> lang.equals("Java"));
В данном случае в консоль напечатается значение true
.
Поиск строк итерированием по списку
Найти строку можно и простым обходом всех элемента списка, допустим, с помощью цикла for-each:
List<String> langs = new ArrayList<>(); langs.add("Java"); langs.add("JavaScript"); langs.add("Kotlin"); langs.add("Scala"); langs.add("Groovy"); langs.add("Python"); for (String lang : langs) { if (lang.startsWith("Java")) { System.out.println(lang); } }
Здесь мы обходим все строки, находящиеся в списке, и выводим те, которые начинаются на «Java». Результатом будет вывод на консоль:
Java
JavaScript
Заключение
С помощью стримов и итерирования по списку можно найти необходимый элемент. С помощью методов сравнения строк можно легко отфильтровать нужные элементы списка:
- startsWith – проверяет, начинается ли строка с указанной последовательности символов
- equals / equalsIgnoreCase – сравнивает строки целиком (учитывая или игнорируя регистр букв)
- contains – проверяет, содержит ли строка указанную последовательность символов