我正在尝试扫描.ppm文件。我需要忽略以“#”开头的行。我怎么用扫描仪这样做? 如果我这样做
while((fileScanner.nextLine()).charAt(0)=='#'){
//Go to next line
}
然后,如果该行不以注释开头,那么我跳过该行,并且无法返回以获取该行中的相关数据。 任何人都知道怎么解决这个问题?
答案 0 :(得分:2)
while (fileScanner.hasNextLine()) {
String line = fileScanner.nextLine();
if (line.startsWith("#")) {
continue;
}
// Go to next line
}
以上是一个更适合的模式。当文件以注释结束时,原始代码有点问题。行也可以是空的,因此charAt不会这样做。
答案 1 :(得分:1)
让我们来看看你的while循环。
while((fileScanner.nextLine()).charAt(0)=='#'){
您说 “扫描下一行,如果第一个字符是'#',请执行循环体 。
这种方法存在一些问题:
为什么不利用continue
声明,而不是从条件语句中读取文件?
while (fileScanner.hasNextLine()) {
String line = fileScanner.nextLine();
if (line.charAt(0) == '#') {
continue; // Found a comment, so skip this iteration.
} else {
// Do whatever you want with your non-comment line.
}
}
注意:某些评论可能在其前面有空格,例如" # comment"
。我假设你不关心那些。