我正在制作一个关于客户端/服务器编程的程序,其中用户将在控制台中输入一个字符串,该程序将在 .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 的真值,但现在它似乎并没有忽略这种情况。例如,我输入“you're”,wordFound 变为 true。但是如果我把它改成“You're”或“yOu'Re”,wordFound 仍然是假的。
有人可以帮我找到解决这个问题的方法吗?谢谢。