Здравствуйте, подскажите как считать все слова из этого файла с стихотворением? То есть получить все слова без символов типа #t_es1385_1, цифровых символов, а также слова, содержащие в себе знаки препинания.
Пытался сделать так:
Files.lines(Paths.get(ReadFile.class.getResource(path).toURI()), StandardCharsets.UTF_8)
.map(s -> s.split("([^а-я А-Я]|[\\d\\w\\s])+"))
.flatMap(Arrays::stream)
.filter(s -> !s.isEmpty())
.collect(Collectors.toList());
Не получилось. Ниже само стихотворение:
"Вот уж вечер. Роса…"
Вот уж вечер. Роса: #t_es1385_1
Блестит на крапиве.
Я стою у дороги,
Прислонившись к иве.
От луны свет большой
Прямо на нашу крышу.
Где-то песнь соловья
Вдалеке я слышу.
Хорошо и тепло,
Как зимой у печки.
И березы стоят,
Как большие свечки.
И вдали за рекой,
Видно, за опушкой,
Сонный сторож стучит
Мертвой колотушкой.
1910
"Там, где капустные грядки…"
Там, где капустные грядки: #t_es1385_2
Files.lines(Paths.get("test.txt"), StandardCharsets.UTF_8)
.map(s -> s.split(" "))
.flatMap(Arrays::stream)
.filter(s -> !s.isEmpty())
.filter(s -> !s.startsWith("#"))
.filter(s -> !s.matches("\\d+"))
.map(s -> s.replaceAll("\\p{IsPunctuation}", ""))
.collect(Collectors.toList());
Сборка персонального компьютера от Artline: умный выбор для современных пользователей