java中replace的问题

来源:百度知道 编辑:UC知道 时间:2024/06/28 13:05:07
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 F

字符串常量是不变的,

比如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;
}
}