1
我試圖從文本文件解析文本,然後用文字分割。然而,當拆分採取的話,它不認可一個新的行作爲一個空間? 有時會識別下一行上的空格,但如果在單詞繼續之前有兩行新行,則不會。解析文件中的文本時沒有空格換行?
我在每一個新行上放一個空格來避免它。
這是一個正常的行爲,以及如何避免它?
例如,使用一個文本文件與:這是一個測試「進入」檢查「進入進入」東西在這個文本「輸入」(打字輸入如所著)
package textparseproblem;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JFileChooser;
public class TextParseProblem {
JFileChooser chooser = new JFileChooser();
File f;
String so = "";
public static void main(String[] args) throws InterruptedException, Exception {
new TextParseProblem().openFchooser();
}
private void openFchooser() throws FileNotFoundException, IOException, InterruptedException, Exception {
int returnVal = chooser.showOpenDialog(null);
if(returnVal == JFileChooser.APPROVE_OPTION) {
f = chooser.getSelectedFile();
} loadFile(f);
}
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;
}
} parseMethod();
}
private void parseMethod() {
String[] sa1 = so.split("\\s");
for(String soo : sa1) {
System.out.println(soo);
}
}
}
換行不包括在結果從的readLine()。 Se [文檔](http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html#readLine()) – OldProgrammer
將so + = s更新爲so + =「」+ s 。您正在追加沒有分離的行。 – Kajal
空格字符和行結束符是不同的。在Windows中,行通過字符返回+換行符(\ r + \ n)終止,而在大多數其他系統上,行終止於簡單換行。 –