【发布时间】:2013-08-09 08:47:17
【问题描述】:
我有一个文本文件,其中每隔一行包含数据。我想获取每个非空行的内容。鉴于文件的整个文本,我首先尝试使用myText.split("\n\n")。令我惊讶的是,它不起作用。我在 Windows 上工作。
【问题讨论】:
我有一个文本文件,其中每隔一行包含数据。我想获取每个非空行的内容。鉴于文件的整个文本,我首先尝试使用myText.split("\n\n")。令我惊讶的是,它不起作用。我在 Windows 上工作。
【问题讨论】:
Windows 使用 CRLF 作为行分隔符。你在LF上分裂。那是行不通的。
一个安全的方法是使用:
System.getProperty("line.separator");
在您的操作系统上获得适当的分隔符。
String newLine = System.getProperty("line.separator");
myText.split("(?:" + newLine + ")+");
您可能正在读取在不同操作系统上创建的文件。那么上面的方法就不行了。更好的方法是使用带有CR 和LF 的字符类,正如@Marko 在cmets 中指定的那样:
myText.split("[\r\n]+");
【讨论】:
\n 分割并修剪每行的\r
"[\r\n]+"。甚至可能是换行符的 Unicode 类别。