【发布时间】:2014-06-11 19:13:18
【问题描述】:
while(reader.hasNextLine()){
String s = reader.nextLine();
String[] tokens = s.split(" ");
while(t < tokens.length){
a = 0;
while( a < 6 ) {
if(tokens[t].equals(d[a])){
System.out.println("found keyword -> " + tokens[t]);
files = 1;
}
a++;
}
p = 0;
while( p < 2 ) {
if(tokens[t].equals(xyz[p])){
System.out.println("found token -> " + tokens[t]);
files2 = 1;
}
p++;
}
if (files2 == 0 && files == 0){
System.out.println("found identifier -> " + tokens[t]);
}
files = 0;
files2 = 0;
t++;
}
reader.close();
}
前几天我发布了类似的内容,但是 while 循环没有修复它。有人可以帮我解决这个问题。问题是它不会读取整个文件,而只会读取一行,即第一行。我不知道我在诚实地做什么。谢谢。
【问题讨论】:
-
从您的格式中很难看出,
reader是在while循环之前还是之后关闭的? -
你到底在哪里定义
t?您的代码只是开始使用它而无需定义/分配它。 -
好吧,马克,我已经定义了变量,但我只是发布了需要工作的代码的必要部分。
-
你应该认真学习使用调试器。
-
此外,实际上没有必要使用扫描仪读取一行,然后将其拆分。 扫描器类使用分隔符。您只需调用
while(scanner.hasNext()) { scanner.next() };,它就会一次只为您提供一个单词,用空格分隔。