我有以下代码
String[] helloWorld = {"Hello", "World"};
System.out.println(Arrays.toString(helloWorld));
打印
[Hello, World]
我需要删除空格和[]。并获得以下价值。
Hello,World
我已将此helloWorld.replaceAll("\\s+","")
删除空格,但如何删除括号。
答案 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中的特殊符号,因此必须对其进行转义。