[英]Reading characters in a file. By 3 at a time.... in Java
我正在编写一个需要在给定文件中找到单词“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”?
请注意,我不想使用数组或花哨的库。 我怎样才能做到这一点?
一次阅读 3 篇不会那么容易。 例如考虑输入“国歌”。 前 3 个字符是“ant”,第二个是“hem”。 输入包含“the”,但它被分成两个 3-char 序列。
逐个字符读取会更容易,例如遵循以下算法:
reader.read()
逐个字符读取直到文件结束,或者直到找到t
return false
h
吗? -> 继续寻找t
h
。 然后再读 1 个字符并检查: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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.