Java中去除字符串中的空格

5

我知道有很多关于这个问题的提问,但我还没有找到适合我情况的解决方案。我知道string.trim()方法,但它没有效果。在网上研究并发现对string.trim()存在着许多不满后,我意识到我想要移除的空格字符必须超出.trim()所涵盖的范围。

我正在使用一些正则表达式来剥离字符串中除'='和','以外的任何特殊字符和所有空格,但是如果空格紧跟在','后面,则不会删除它们。

然而,现在我想完全从字符串中删除所有空格。如何编辑我正在使用的正则表达式以实现这一点?如果有什么想法,请告诉我。再次强调,我想保留'='和','以及数字和字母。所有空格和其他特殊字符都应该被删除。

以下是目前的代码:

if (argsToBeFiltered != null) {
            // Remove all whitespace and chars apart from = and ,
            String filteredArgs = argsToBeFiltered.replaceAll(
                    "[^=,\\da-zA-Z\\s]|(?<!,)\\s", "");
            return filteredArgs;
}
2个回答

5

现在是时候学习正则表达式了!

请参考Pattern和各种正则表达式教程,例如教训:正则表达式

[^=,\\da-zA-Z\\s]

该部分指匹配非 (^) 字符:=,,数字 (\d),A-Z (A-Z) 或空格 (\s)。然而,您现在可能希望它匹配空格(因为没有第二个逗号后的部分来匹配它们)。所以:

argsToBeFiltered.replaceAll("[^=,\\da-zA-Z]", "");

3
不完全正确。\\s(或在字符串转义后为\s)不仅包括空格,还包括垂直和水平制表符、回车/换行等。 - Powerlord
@R. Bemrose 谢谢。已更正。 - user166390

1

试试这个:

if (argsToBeFiltered != null) {
            // Remove all whitespace and chars apart from = and ,
            String filteredArgs = argsToBeFiltered.replaceAll(
                    "\\w+");
            return filteredArgs;
}

谢谢CoolBeans - pst为我解决了问题。感谢您的关注! - Frank

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接