我有一个像这样的字符串:
mysz = "name=john age=13 year=2001";
我想删除字符串中的空格。我试过trim()
但这只删除了整个字符串前后的空格。我也尝试了replaceAll("\\W", "")
但是=
也被删除了。
如何使用以下方法实现字符串:
mysz2 = "name=johnage=13year=2001"
st.replaceAll("\\s+","")
删除所有空格和不可见字符(例如,tab, \n
)。
st.replaceAll("\\s+","")
和st.replaceAll("\\s","")
产生相同的结果。
第二个正则表达式比第一个正则表达式快 20%,但是随着连续空格数量的增加,第一个正则表达式的性能优于第二个正则表达式。
将值分配给变量(如果不直接使用):
st = st.replaceAll("\\s+","")
replaceAll("\\s","")
\w
= 任何文字字符
\W
= 任何非文字字符(包括标点符号等)
\s
= 任何空格字符(包括空格,制表符等)
\S
= 任何非空格字符(包括字母和数字,以及标点符号等)
(编辑:如前所述,如果希望\s
到达正则表达式引擎,则\\s
。)
该问题的最正确答案是:
String mysz2 = mysz.replaceAll("\\s","");
我只是从其他答案中改编了这段代码。我之所以发布它,是因为它不仅是问题的要求,而且还表明结果以新字符串的形式返回,原始字符串并未像某些答案所暗示的那样被修改。
(经验丰富的 Java 开发人员可能会说 “当然,您实际上不能修改 String”,但是此问题的目标读者很可能不知道这一点。)