为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕斯王 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条经验 获得超10个赞

字符串常量是不变的,

比如String s="123敏感";
不管你后面对s做任何操作。 s还是s这个对象,不变。

你要对s重新赋值:
s=s.replace("敏感","");

那么这个时候 s就已经变成被替换后的值了。这就是你想要的,记住String这个特性就好了。

查看完整回答
反对 回复 2021-07-05
?
撒科打诨

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

 

查看完整回答
反对 回复 2021-07-05
  • 2 回答
  • 0 关注
  • 169 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信