【问题标题】:Trimming whitespace from a String in Java在Java中从字符串中修剪空格
【发布时间】:2011-05-18 16:26:54
【问题描述】:

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

【问题讨论】:

    标签: java regex string filter replace


    【解决方案1】:

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

    参见PatternLesson: Regular Expressions等各种正则表达式教程。

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

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

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

    【讨论】:

    • 这不太对。 \\s(或字符串转义后的\s)不仅仅是空格,还包括垂直和水平制表符、回车/换行等...
    • @R。贝姆罗斯 谢谢。已更正。
    【解决方案2】:

    试试这个:-

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

    【讨论】:

    • 感谢 CoolBeans - pst 帮我搞定了。为兴趣干杯!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多