Может кто-то уже намучился и сразу видит, что не так. Пробовал и с цифровыми символами пропускать и смесь символов и букв, и с подчеркиваниями внутри слова и с кавычками - ничего не хочет. Записывать построчно в файл а не в одну строку тоже пробовал. Не все варианты между собой перепробовал наверное, но поднадоело)
package com.javarush.task.task19.task1925;
/*
Длинные слова
*/
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
//input:
// !!!!!!!Anna_Maria ?????? 1234567
// Maria or Anna - just Anna-Maria,
// Walkovered at street with Tony Garsia!!!
// Did stupid she did? How could she belive him?
// Whatever - he bang her on side street.
//
// P.S: AnnaMaria is stupid name
// output: Anna-Maria,Walkovered,Whatever,AnnaMaria
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
BufferedWriter writer = new BufferedWriter(new FileWriter(args[1]));
Pattern pattern = Pattern.compile("\\b[а-яА-Яa-zA-Z[-]]{7,}\\b");
StringBuilder sb = new StringBuilder();
while (reader.ready()) {
Matcher matcher = pattern.matcher(reader.readLine());
while (matcher.find()) {
sb.append(matcher.group())
.append(",");
}
}
if (sb.length() > 1) {
// System.out.println(sb.substring(0, sb.length() - 1));
writer.write(sb.substring(0, sb.length() - 1));
}
reader.close();
writer.close();
}
}