协慌网

登录 贡献 社区

在 Java 中从字符串中删除空格

我有一个像这样的字符串:

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”,但是此问题的目标读者很可能不知道这一点。)