我编写了一个用于解析模板的扫描仪实用程序 请考虑代码段:
String input = FileUtils.readFileToString(new File("input file path"));
Scanner scanner = new Scanner(input);
scanner.useDelimiter(System.getProperty("line.separator"));
System.out.println("Checking");
while(scanner.hasNext())
{
System.out.print(scanner.hasNext("\\s*#[^\\n]*"));
System.out.println(" : " + scanner.nextLine());
}
输入文件内容:
# Line 1
#######################
# Check
# Matched with spaces
#
// End of file
注意:输入中不存在文件行的结尾。
产生的结果:
Checking
true : # Line 1
true : #######################
true :
true : # Check
true : # Matched with spaces
true : #
false :
false :
我的问题是为什么第三行hasNext()返回true,即使它没有以'#'开头?
任何帮助将不胜感激。