在Java中修剪字符串中的空格

时间:2010-12-01 18:32:19

标签: java regex string filter replace

我意识到有很多问题,但我还没有找到适合我情况的解决方案。我知道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 个答案:

答案 0 :(得分:5)

学习正则表达的时间!

请参阅Pattern和各种正则表达式教程,例如Lesson: Regular Expressions

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

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

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

答案 1 :(得分:1)

试试这个: -

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