Я делаю программу для программирования клиент / сервер, в которой пользователь вводит строку в консоли, и программа будет искать каждую строку в файле .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 становится правдой. Но если я поменяю его на «Вы» или «yOu'Re», wordFound все равно будет ложным.
Может кто-нибудь помочь мне найти решение этой проблемы? Благодаря.