我正在尝试替换我的字符串中的所有方括号。
这是我的程序
package com;
import java.util.ArrayList;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONException;
public class Teste {
/**
* @param args
* @throws JSONException
*/
public static void main(String[] args) throws JSONException {
String str = "[Fountain#Apple#Big(7)]";
str.replaceAll("[", "").replace("]", "");
System.out.println(str);
}
}
但我得到了
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 0
[
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.clazz(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)
at com.Teste.main(Teste.java:19)
有人可以告诉我如何更换所有方括号吗?
答案 0 :(得分:25)
String.replaceAll
采用正则表达式模式,但您根本不需要正则表达式。您可以使用:
str = str.replace("[", "").replace("]", "");
或者你可以使用正则表达式,如果你愿意,可以一次性取代:
str = str.replaceAll("[\\[\\]]", "");
那句&#34;用空字符串替换集合中的任何字符(方括号,方括号)。 \\
是要转义集合中的方括号。
请注意,您需要使用replace
(或replaceAll
)的结果 - 字符串在Java中是不可变的,因此replace
之类的任何方法都不会修改现有的字符串,它们返回对带有相关修改的 new 字符串的引用。