import java.util.*;public class StringTest{public static void main(String[] args){String s="敏感 <avbd> 我额度";HtmlFileter hf=new HtmlFileter();StringFileter sf=new StringFileter();FileterList fl=new FileterList();fl.add(hf).add(sf);fl.doFileter(s);String ss=hf.doFileter(s);System.out.println(s);System.out.println(ss);}}interface Fileter{String doFileter(String s);}class HtmlFileter implements Fileter{public String doFileter(String s){s.replace('<','[');s.replace('>',']');return s;}}class StringFileter implements Fileter{public String doFileter(String s){//s.replace("敏感","");return s;}}class FileterList implements Fileter{private ArrayList al=new ArrayList();public FileterList add(Fileter f){al.add(f);return this;}public String doFileter(String s){Iterator i=al.iterator();if(i.hasNext()){((Fileter)(i.next())).doFileter(s);return s;}else{return s;}}}为什么我的repalece 没用?
2 回答
拉莫斯之舞
TA贡献1820条经验 获得超10个赞
字符串常量是不变的,
比如String s="123敏感";
不管你后面对s做任何操作。 s还是s这个对象,不变。
你要对s重新赋值:
s=s.replace("敏感","");
那么这个时候 s就已经变成被替换后的值了。这就是你想要的,记住String这个特性就好了。
撒科打诨
TA贡献1934条经验 获得超2个赞
class HtmlFileter implements Fileter{
public String doFileter(String s){
s.replace('<','[');
s.replace('>',']');
return s;
}
}
改成
class HtmlFileter implements Fileter{
public String doFileter(String s){
s= s.replace('<','[');
s= s.replace('>',']');
return s;
}
}
添加回答
举报
0/150
提交
取消