Java 在解析文件中的文本时,是否没有新行的空间?
我试图解析文本文件中的文本,然后将其拆分为单词。但是,当split接受这些单词时,它不会将新行识别为空格? 有时它会识别下一行的空格,但如果在单词继续之前有两行新的空格,它就不会识别 我在每一行上加了一个空格来避免它 这是正常行为吗?如何避免 例如,使用文本文件:这是一个测试“回车”,用于检查文本中的“回车”内容“回车”(以书面形式键入回车)Java 在解析文件中的文本时,是否没有新行的空间?,java,file,parsing,Java,File,Parsing,我试图解析文本文件中的文本,然后将其拆分为单词。但是,当split接受这些单词时,它不会将新行识别为空格? 有时它会识别下一行的空格,但如果在单词继续之前有两行新的空格,它就不会识别 我在每一行上加了一个空格来避免它 这是正常行为吗?如何避免 例如,使用文本文件:这是一个测试“回车”,用于检查文本中的“回车”内容“回车”(以书面形式键入回车) 根据您的策略,其中一种方法是在字符串(读取行)之间添加额外的“空格”,以便以后可以识别它们: private void loadFile(File fil
根据您的策略,其中一种方法是在字符串(读取行)之间添加额外的“空格”,以便以后可以识别它们:
private void loadFile(File fileC) throws IOException {
try (BufferedReader reader = new BufferedReader(new FileReader(f))) {
while (true) {
String s = reader.readLine();
if (s == null) {
break;
}
so += " "+s; // here
}
}
parseMethod();
}
如果在这种情况下,字符串有额外的“空格”,则可以在更正此方法时对其进行解析:
private void parseMethod() {
String[] sa1 = so.split("\\s+"); // to recognize some spaces
for (String soo : sa1) {
System.out.println(soo);
}
}
其他方法不需要更改readLine()的结果中不包括换行符。将so+=s更新为so+=''+s。您正在不分隔地追加行。空格字符和行终止符是不同的。在Windows中,行由字符返回+换行符(\r+\n)终止,而在大多数其他系统中,行由我的简单换行符终止。是的,将空格添加到初始字符串即可。so+=''+s;谢谢,这很好,很有效。不过,我认为最好包含“\\s+”。谢谢
private void parseMethod() {
String[] sa1 = so.split("\\s+"); // to recognize some spaces
for (String soo : sa1) {
System.out.println(soo);
}
}