Java nextLine()忽略分隔符\\";

Java nextLine()忽略分隔符\\";,java,delimiter,Java,Delimiter,我从一个文件中读取输入,其中文本由一个或多个换行符分隔。要忽略空白换行符,我使用input.useDelimiter(\\n”)但是由于某种原因,NestReo()-方法读取空白行而不是忽略它们。我做错了什么 编辑:假设第一行是空白换行符,第二行有字符串“ABC” 给出此结果:****** 而不是***ABC*** 不使用分隔符模式,它使用自己的内部模式来检查新行的每个实例 要修复此问题,请使用带分隔符模式的Scanner#next()“\\n+”检查一行中是否有多个新行 // Change t

我从一个文件中读取输入,其中文本由一个或多个换行符分隔。要忽略空白换行符,我使用
input.useDelimiter(\\n”)但是由于某种原因,NestReo()-方法读取空白行而不是忽略它们。我做错了什么

编辑:假设第一行是空白换行符,第二行有字符串“ABC”

给出此结果:
******
而不是
***ABC***

不使用分隔符模式,它使用自己的内部模式来检查新行的每个实例

要修复此问题,请使用带分隔符模式的
Scanner#next()
“\\n+”检查一行中是否有多个新行

// Change the delimiter to the newline char
// \\r used just for Windows compatibility
input.useDelimiter("[\\r\\n]+");
// Get the next non-blank line
String nextLineThatHasSomething = input.next();

您是否检查了扫描仪下一行的功能?@johnchen902\char正在被转义。@luigimendoza Oops。。。看来我得重读扫描仪上的文件了。你可以一次画一行,然后修剪一下。如果修剪后该行是空字符串,则可以跳过它。即使该行是空的(在行分隔符旁边没有任何内容)
\n
,它仍然是行,因此
readLine
正确返回空字符串。您应该感兴趣的是
next
方法,而不是
nextLine
。另外,如果要忽略空行,您可能应该使用
[\n\r]+
作为分隔符。您可以使用
System.getProperty(“line.separator”)
来使用当前的操作系统行分隔符。@luigimendoza。。。或者来自Java7 System.lineSeparator()
// Change the delimiter to the newline char
// \\r used just for Windows compatibility
input.useDelimiter("[\\r\\n]+");
// Get the next non-blank line
String nextLineThatHasSomething = input.next();