回 帖 发 新 帖 刷新版面

主题:replaceAll("|","");

public class Test
{
        
    public static void main(String args[])
  {
        
        
                String aa="a|a*b&c@";
              String b = aa.replaceAll("|","");
                System.out.println(b);
           
    }
}
为什么  String b = aa.replaceAll("|","");
String b = aa.replaceAll("*","");
运行为什么不行

回复列表 (共3个回复)

沙发

看API里,replaceAll(String regex, String replacement)
前面被替换的是REGEX,正则表达式。
正则表达式里,“|”是“或”的意思,不是普通字符。
请自己试验String b = aa.replaceAll("a|b","");
请自己试验String b = aa.replaceAll("[|]","");
*也是正则表达式里的特殊字符,表示重复它前面的字符任意次。

板凳

replaceAll方法的第一个参数需要使用正则表达式指定,你的第一个参数"|"不是合法的正则表达式,所以是不起作用的。如果要使用普通的字符串替换的话应该使用replace(oldStr, newStr)方法。

3 楼

[quote]replaceAll方法的第一个参数需要使用正则表达式指定,你的第一个参数"|"不是合法的正则表达式,所以是不起作用的。如果要使用普通的字符串替换的话应该使用replace(oldStr, newStr)方法。[/quote]
正解!

我来回复

您尚未登录,请登录后再回复。点此登录或注册