所以我一直试用并错误一段时间无济于事。我在这里看了其他的答案,但唯一的展示如何摆脱所有多余的,但没有提到如何保存。以下是我的最后一次尝试:
records.replaceAll("\\s[^\\r^\\n]+", " ")
希望你们中的一个可以提供帮助。
答案 0 :(得分:4)
您可能正在寻找
records = records.replaceAll("[\\s&&[^\r\n]]+"," ")
感谢intersection operator &&
我们正在创建一个字符类,它与任何空格字符\s
相交,字符不是\r
或\n
。
演示:
System.out.println("----BEFORE:");
String records = "foo bar baz\rABC\nDEF\t\tGHI";
System.out.println(records);
records = records.replaceAll("[\\s&&[^\r\n]]+", " ");
System.out.println("----AFTER:");
System.out.println(records);
输出:
----BEFORE:
foo bar baz
ABC
DEF GHI
----AFTER:
foo bar baz
ABC
DEF GHI
答案 1 :(得分:2)
你可以简单地做
records.replaceAll(" +", " ")
或
records.replaceAll("(?:(?!\\r|\\n)\\s)+", " ")