我有这样的字符串:
test text test
我想保持单个空格原样并用替换多个空格
所以它将变成:
tets text test
这里有人可以建议我regex
吗?
您可以使用以下替换:
String replaced = str.replaceAll("((?<= ) | (?= ))", " ");
说明:我在这里使用正则表达式的前瞻和后视功能。((?<= ) | (?= ))
意味着找到一个空格,它前面有一个空格(?<= )
或后面有一个空格(?= )
这将确保单个空格不被替换,但所有多个空格都被替换。有关环视的更多详细信息,请参阅此链接:http ://www.regular-expressions.info/lookaround.html
像下面这样尝试它会帮助你..
它替换Multiple spaces
为Single Space
..
YourString.trim().replaceAll(" +", " ");
String str = "test text test ";
System.out.println(str.replaceAll("\\s+", " "));
String str="test text test";
str=str.replaceAll("\\s\\s"," ");
str=str.replaceAll(" \\s"," ");//It will work for Odd number
如果有奇数个空格,第一个替换将留下一个空格,因此第二个替换可以解决该问题。