Я делаю программу о клиент-серверном программировании, в которой пользователь вводит строку в консоль, и программа будет искать эту строку в каждой строке файла .txt и выводит всю строку, где находится эта конкретная строка.
Это часть кода, где используется StringTokenizer:
String line = "";
boolean wordFound = false;
while((line = bufRead.readLine()) != null) {
StringTokenizer str = new StringTokenizer(line, ", .();:-?!'");
while(str.hasMoreTokens()) {
String next = str.nextToken();
if(next.equalsIgnoreCase(targetWord)) {
wordFound = true;
output = line;
break;
}
}
if(wordFound) break;
else output = "Quote not found.";
}
Проблема в том, что когда я хочу найти строку, например. "ты" или "это мой день рождения" (с апострофом и/или пробелами), это дает ложное значение для логического слова wordFound. Я попытался удалить разделители " " и "'", но все равно это не работает.
Я когда-то модифицировал код и иногда получаю истинное значение для логического слова wordFound, но теперь похоже, что он не игнорирует регистр. например Я ввел "ты", словоНайденное становится истинным. Но если я изменю его на «Ты» или «ты», wordFound по-прежнему будет ложным.
Может ли кто-нибудь помочь мне найти решение этой проблемы? Спасибо.