我在本实验中的任务是接受多个输入文件,并且所有这些文件的格式都相似,只是有些文件有注释,我想跳过注释行。例如:
输入文件:
Input file 1
#comment: next 5 lines are are for to be placed in an array
blah 1
blah 2
blah 3
blah 4
blah 5
#comment: next 2 line are to be placed in a different array
blah 1
blah 2
#end of input file 1
我尝试做的是使用2循环(如果需要,我可以发布我的代码)。我做了以下
while(s.hasNext()) {
while(!(s.nextLine().startWith("#")) {
//for loop used to put in array
array[i] = s.nextLine();
}
}
我觉得这应该有效,但事实并非如此。我做错了什么请帮忙。提前谢谢。
答案 0 :(得分:7)
你正在失去良好的界限,应该是:
String line;
while(!(line = s.nextLine()).startWith("#")) {
array[i] = line;
}
答案 1 :(得分:2)
您的代码存在两个问题:
nextLine
。while
循环将失败。尝试按如下方式修改代码:
int i = 0;
while(s.hasNextLine()) {
String line = s.nextLine();
if(!line.startWith("#")) {
array[i++] = line;
}
}
答案 2 :(得分:0)
你的代码的问题是它只会读取数组中的替换行,因为在读取一行之前,nextLine()方法将被调用两次(在while测试表达式中一次,而在while体中第二次)而不是一次...... binyamin建议什么对你有用。