【发布时间】:2013-03-31 17:25:05
【问题描述】:
我有类似的字符串:
test text test
我想保留单个空格,并用  替换多个空格
所以会变成:
tets text test
这里有人可以推荐我regex吗?
【问题讨论】:
我有类似的字符串:
test text test
我想保留单个空格,并用  替换多个空格
所以会变成:
tets text test
这里有人可以推荐我regex吗?
【问题讨论】:
试试下面的方法会对你有所帮助..
它将Multiple spaces 替换为Single Space..
YourString.trim().replaceAll(" +", " ");
【讨论】:
" +" 和两个空格作为第一个参数可能更有效,因为它不会用另一个空格替换单个空格。
您可以使用以下替换:
String replaced = str.replaceAll("((?<= ) | (?= ))", " ");
说明:我在这里使用正则表达式的前瞻和后瞻功能。 ((?<= ) | (?= )) 表示找到一个前面有一个空格(?<= ) 或后面有一个空格(?= ) 这将确保单个空格不会被替换,而是所有多个空格被替换。有关外观的更多详细信息,请参阅此链接:http://www.regular-expressions.info/lookaround.html
【讨论】:
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
如果有奇数个空格,第一个替换会留下一个空格,这样第二个就可以解决这个问题。
【讨论】: