Я пытаюсь выполнить упражнение, в котором мне нужно создать класс для чтения слов из .txt и поместить слова в HashSet. Дело в том, что если текст гласит: «Я Даниил, я Даниил». Я буду иметь слово для «я», «я». и «Даниил» и «Даниэль». Как мне это исправить?
Вот мой код. (Я пытался использовать регулярные выражения, но я получаю исключение):
import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashSet;
import java.util.Scanner;
public class WordCount {
public static void main(String[] args) {
try {
File file = new File(args[0]);
HashSet<String> set = readFromFile(file);
set.forEach(word -> System.out.println(word));
}
catch(FileNotFoundException e) {
System.err.println("File Not Found!");
}
}
private static HashSet<String> readFromFile(File file) throws FileNotFoundException {
HashSet<String> set = new HashSet<String>();
Scanner scanner = new Scanner(file);
while(scanner.hasNext()) {
String s = scanner.next("[a-zA-Z]");
set.add(s.toUpperCase());
}
scanner.close();
return set;
}
}