求指教,关于在java中replace的问题?

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 没用?

慕斯王
浏览 170回答 2
2回答

拉莫斯之舞

字符串常量是不变的,比如String s="123敏感";不管你后面对s做任何操作。 s还是s这个对象,不变。你要对s重新赋值:s=s.replace("敏感","");那么这个时候 s就已经变成被替换后的值了。这就是你想要的,记住String这个特性就好了。

撒科打诨

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;}}&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
JavaScript