@ TimBiegeleisen уже предоставил отличный ответ.
Для полноты позвольте мне также предоставить потоковое решение, которое использует NIO (Javas более новый, современный File API), который использует его проверку:
Files.lines(Path.of("amazing.txt"))
.filter(line -> line.matches(".*[,;]\\s*"))
.forEach(System.out::println);
Код требует как минимум Java 11 из-за Path.of
. Или Java 8, если вы используете вместо него Paths.get("amazing.txt")
.
Если вы намеревались добавить эти строки в text
вместо их печати, вы можете легко изменить код:
Files.lines(Path.of("amazing.txt"))
.filter(line -> line.matches(".*[,;]\\s*"))
.forEach(text::add);
Или пусть поток сам создаст список, тогда не обязательно:
List<String> text = Files.lines(Path.of("amazing.txt"))
.filter(line -> line.matches(".*[,;]\\s*"))
.collect(Collectors.toList());