【转】JAVA字符串替换

1. /**
   * 字符串替换函数
   * @param from 要替换的字符
   * @param to 要替换成的目标字符
   * @param source 要替换的字符串
   * @return 替换后的字符串
   */
   import java.util.StringTokenizer;

   public String str_replace(String from,String to,String source) {
     StringBuffer bf= new StringBuffer("");
     StringTokenizer st = new StringTokenizer(source,from,true);
     while (st.hasMoreTokens()) {
       String tmp = st.nextToken();
       if(tmp.equals(from)) {
         bf.append(to);
       } else {
         bf.append(tmp);
       }
     }
     return bf.toString();
   }

2. /*
*字符串替换函数,另一种方法的实现
*/
   public String str_replace2(String con ,String tag,String rep){
     int j=0;
     int i=0;
     int k=0;
     String RETU="";
     String temp =con;
     int tagc =tag.length();
     while(i<con.length()){
       if(con.substring(i).startsWith(tag)){
         temp =con.substring(j,i)+rep;
         RETU+= temp;
         i+=tagc;
         j=i;
       }else{
         i+=1;
       }
     }
     RETU +=con.substring(j);
     return RETU;
   }   

3.

   public static String replace(String strSource, String strFrom, String strTo) {
     if(strFrom == null || strFrom.equals(""))
       return strSource;
     String strDest = "";
     int intFromLen = strFrom.length();
     int intPos;
     while((intPos = strSource.indexOf(strFrom)) != -1) {
       strDest = strDest + strSource.substring(0,intPos);
       strDest = strDest + strTo;
       strSource = strSource.substring(intPos + intFromLen); 
     } 
     strDest = strDest + strSource; 
       return strDest;
   }


4.高效替换程序。

   public static String replace(String strSource, String strFrom, String strTo) {    
     if (strSource == null) {        
       return null;    
     }  
     int i = 0;
     if ((i = strSource.indexOf(strFrom, i)) >= 0) {
       char[] cSrc = strSource.toCharArray();
       char[] cTo = strTo.toCharArray();
       int len = strFrom.length();  
       StringBuffer buf = new StringBuffer(cSrc.length);  
       buf.append(cSrc, 0, i).append(cTo);
       i += len;    
       int j = i;       
       while ((i = strSource.indexOf(strFrom, i)) > 0) {  
         buf.append(cSrc, j, i - j).append(cTo);   
         i += len;  
         j = i;        
       }        
       buf.append(cSrc, j, cSrc.length - j); 
       return buf.toString(); 
     } 
     return strSource;
   }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值