我正在编写一个需要在给定文件中找到“the”一词的程序
while ((c=reader.read())>=0)
{
if (c==116 && c+1==104 && c+2==101)
return true;
}
这显然是错误的,虽然它正确地将c
的值与116(字符代码“t”)进行了比较,
但是,c+1
显然不是输入中的下一个字符,
所以它没有将正确的东西与104(字符代码“h”)进行比较。
同上c+2
和101(字符代码“e”)。
如何阅读文件以查找“the”这个词?
请注意,我不想使用数组或花哨的库。我怎么能这样做?
答案 0 :(得分:0)
一次阅读3次并不容易。例如考虑输入"国歌"。前三个字符是" ant",第二个"下摆"。输入包含"",但它分为两个3-char序列。
逐字逐句阅读会更容易 例如,遵循此算法:
reader.read()
逐个字符阅读,直至文件结尾,或直至找到t
return false
h
吗? - >继续寻找t
h
。然后再读一个字符并检查:return false
e
吗? - > return true
return false
以下是一种方法:
boolean containsThe(Reader reader) throws IOException {
int c1;
while ((c1 = reader.read()) != -1) {
if (c1 != 't') continue;
int c2 = reader.read();
if (c2 == -1) return false;
if (c2 != 'h') continue;
int c3 = reader.read();
if (c3 == -1) return false;
if (c3 == 'e') return true;
}
return false;
}