java中replace的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 没用?
比如String s="123敏感";
不管你后面对s做任何操作。 s还是s这个对象,不变。
你要对s重新赋值:
s=s.replace("敏感","");
那么这个时候 s就已经变成被替换后的值了。这就是你想要的,记住String这个特性就好了。 参考技术A 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();
while(i.hasNext())//把if改成while
s=((Fileter)(i.next())).doFileter(s);
return
s;
参考技术B 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;
Java中replace和replaceall的区别
String str1 = str.replace("e", "E");
String str3 = str.replace(‘e‘, ‘E‘);
System.out.println("replace字符串==" + str1);
System.out.println("replace字符=="+str3);
String str2 = str.replaceAll("\\d", "a");//将数字替换a
System.out.println("replaceAll==" + str2);
replace字符==wEl2comE3SouhE
replaceAll==welacomeaSouhe
以上是关于java中replace的问题的主要内容,如果未能解决你的问题,请参考以下文章