Я пытаюсь прочитать большой блок текста и сохранить каждое уникальное слово и количество раз, которое оно встречается в тексте. Для этого я сделал список массивов класса Word. Класс Word просто хранит слово и количество раз, когда оно появилось. Чтобы избежать дублирования одного и того же слова, я использую функцию .contains (), чтобы посмотреть, обработал ли я слово раньше, но по какой-то причине .contains () не работает.
class Main
{
public static void main(String[] args) throws FileNotFoundException
{
File file = new File("poe.text");
Scanner f = new Scanner(file);
ArrayList<Word> words = new ArrayList<Word>();
int total = 0;
while(f.hasNext())
{
Word temp = new Word(f.next().toLowerCase().trim());
//System.out.println("temp is "+temp.getWord());
total++;
if(words.contains(temp))
{
words.get(words.indexOf(temp)).up();
} else
{
words.add(temp);
}
}
for(Word w:words)
{
System.out.println(w.toString());
}
}
}
if Оператор никогда не оценивается как true, и каждое слово добавляется к словам ArrayList, даже если оно уже присутствует.