java中,replaceAll方法中的问题

java中,replaceAll(cha1,cha2)方法中一般情况下可以用cha1替换掉cha2,但是为什么cha1是“*”的时候就替换不掉呢?没分了不好意思
String name="abc%d%a%f###%s*adj";
String str = name.replaceAll("*","%");
System.out.println(str);
就会报错。
String name="abc%d%a%f###%s*adj";
String str = name.replaceAll("%","*");
System.out.println(str);
则会成功输出
如果把*改[*]就可以成功输出

public String replaceAll(String regex,
String replacement)使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的每个子字符串。
此方法调用的 str.replaceAll(regex, repl) 形式产生与以下表达式完全相同的结果:

Pattern.compile(regex).matcher(str).replaceAll(repl)

参数:
regex - 用来匹配此字符串的正则表达式

replacAll要用正则表达式,所以[*]就可以,[*]表示*
温馨提示:答案为网友推荐,仅供参考
相似回答