我有一个包含制表符、空格和换行符的输入字符串:
我想达到这种状态:
任何想法?这可以通过使用正则表达式实现吗?
我已经尝试过这种方法,但这对我来说似乎不太优秀。
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+", " ")
不是我要寻找的。如果这个正则表达式能够保留现有的一个换行符,那就完美了。我已经尝试过这种方法,但这对我来说似乎不太优秀。
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");
}
}