RegEx删除括号和空格

时间:2015-03-03 10:00:42

标签: java regex replaceall

我有以下代码

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

打印

[Hello, World]

我需要删除空格和[]。并获得以下价值。

Hello,World

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

2 个答案:

答案 0 :(得分:10)

此处不需要正则表达式,尤其是因为您可以轻松地犯取许多错误,例如删除作为令牌部分的[ ],或者如果元素可能包含多个单词,例如{{ 1}}。

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

[foo bar, baz]

如果您没有Java 8,您可以编写自己的方法,如

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

如果你不能使用Java 8并且你不想重新发明轮子,你可以使用http://commons.apache.org/proper/commons-lang/库中的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(); } 等外部方法

StringUtils.join

答案 1 :(得分:2)

将正则表达式更改为:

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

由于[]是Regex中的特殊符号,因此必须对其进行转义。