正则表达式删除括号和空格

RegEx to remove brackets and blank spaces

我有以下代码

String[] helloWorld = {"Hello", "World"};
System.out.println(Arrays.toString(helloWorld));

打印

[Hello, World]

我需要删除空格和 [ ] 。并得到如下值。

Hello,World

我有此 helloWorld.replaceAll("\s+","") 来删除空格,但我如何删除括号。

将您的正则表达式更改为:

String[] helloWorld = {"Hello", "World"};
System.out.println(Arrays.toString(helloWorld).replaceAll("[\[\]\s]", ""));

由于[]是正则表达式中的特殊符号,因此必须对其进行转义。

这里不需要正则表达式,特别是因为你很容易犯很多错误,比如删除 [ ] ,这是你的标记的一部分,或者如果元素可以包含多个单词,比如[foo bar, baz].

解决这个问题的最简单方法是使用 String.join(CharSequence delimiter, CharSequence... elements) 添加在 Java 8.

String[] helloWorld = {"Hello", "World"};
System.out.println(String.join(",", helloWorld));

如果你没有Java 8 你可以像

这样写你自己的方法
public static String join(CharSequence delimiter, CharSequence... elements){
    if (elements.length == 0) return "";
    StringBuilder sb = new StringBuilder(elements[0]);
    for (int i = 1; i < elements.length; i++) {
        sb.append(delimiter).append(elements[i]);
    }
    return sb.toString();
}

如果您不能使用 Java 8 并且您不想重新发明轮子,您可以使用外部方法,例如 http://commons.apache.org/proper/commons-lang/StringUtils.join

System.out.println(StringUtils.join(helloWorld, ","));