この入力文字列があります(タブ、スペース、改行を含む):
That is a test.
seems to work pretty good? working.
Another test again.
[編集]: stackoverflow はすべての特殊文字 (タブなど) を削除するため、より良いテストのために文字列を提供する必要がありました。
String testContent = "\n\t\n\t\t\t\n\t\t\tDas ist ein Test.\t\t\t \n\tsoweit scheint das \t\tganze zu? funktionieren.\n\n\n\n\t\t\n\t\t\n\t\t\t \n\t\t\t \n \t\t\t\n \tNoch ein Test.\n \t\n \t\n \t";
そして、私はこの状態に到達したい:
That is a test.
seems to work pretty good? working.
Another test again.
String expectedOutput = "Das ist ein Test.\nsoweit scheint das ganze zu? funktionieren.\nNoch ein Test.\n";
何か案は?これは正規表現を使用して達成できますか?
replaceAll("\\s+", " ")
私が探しているものではありません。この正規表現が存在するものの正確に1つの改行を保持する場合、それは完璧です.
私はこれを試しましたが、これは私には最適ではないようです...:
BufferedReader bufReader = new BufferedReader(new StringReader(testContent));
String line = null;
StringBuilder newString = new StringBuilder();
while ((line = bufReader.readLine()) != null) {
String temp = line.replaceAll("\\s+", " ");
if (!temp.trim().equals("")) {
newString.append(temp.trim());
newString.append("\n");
}
}