私はテキストファイルからテキストを解析し、それを単語で分割しようとしていました。しかし、分割に単語がかかると、新しい行がスペースとして認識されません。 時には、次の行のスペースは認識されますが、単語が続行される前に新しい行が2つある場合は認識されません。ファイルからのテキストの解析に新しい行のためのスペースはありませんか?
私はそれを避けるために、新しい行にスペースを入れました。
これは正常な動作ですか?回避するにはどうすればよいですか?
例えばAテキストファイルでの使用:これはテストあなたの戦略によると、「入力して入力し、」何か、このテキストでは「入力」(writedとして入力タイピング)
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);
}
}
}
を変更する必要はありません。 [documenation](http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html#readLine()) – OldProgrammer
so + = "" + sにso + = sを更新する。区切りなしで行を追加しています。 – Kajal
スペース文字と行ターミネータが異なります。 Windowsの場合、行は文字の復帰+改行文字(\ r + \ n)で終了しますが、他のほとんどのシステムでは、改行は単純な改行で終了します。 –