慕斯王
2021-06-30 11:07:01
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條經(jīng)驗 獲得超10個贊
字符串常量是不變的,
比如String s="123敏感";
不管你后面對s做任何操作。 s還是s這個對象,不變。
你要對s重新賦值:
s=s.replace("敏感","");
那么這個時候 s就已經(jīng)變成被替換后的值了。這就是你想要的,記住String這個特性就好了。

撒科打諢
TA貢獻1934條經(jīng)驗 獲得超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
提交
取消