ユーザーがコンソールに文字列を入力するクライアント/サーバープログラミングに関するプログラムを作成しています.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.";
}
問題は、"you're" や "it's my birthday" などの文字列 (アポストロフィやスペースを使用) を検索すると、ブール型の wordFound に偽の値が返されることです。区切り文字 " " と "'" を削除しようとしましたが、それでも機能しません。
私はかつてコードを修正し、boolean wordFound に対して真の値を取得することがありましたが、今では大文字と小文字を区別していないようです。たとえば、「you're」と入力すると、wordFound が true になります。しかし、「You're」または「yOu'Re」に変更しても、wordFound は依然として false です。
誰かがこの問題の解決策を見つけるのを手伝ってくれますか? ありがとう。