隨筆-5  評論-22  文章-35  trackbacks-0

          最近在網上搜集了一些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;
          ? }

          posted on 2006-06-08 09:06 fish的Blog 閱讀(39006) 評論(4)  編輯  收藏 所屬分類: Jsp

          評論:
          # re: Java中字符串的替換 2012-07-26 10:09 | RickyLee
          String a="cabcd";
          a=a.replaceAll("abc","cba");
          System.out.println(a);  回復  更多評論
            
          # re: Java中字符串的替換 [未登錄] 2013-05-03 09:54 | tbw
          非常有用的   回復  更多評論
            
          # re: Java中字符串的替換 [未登錄] 2013-05-03 09:54 | tbw
          非常有用的  回復  更多評論
            
          # re: Java中字符串的替換 2013-06-17 22:09 | ldwtzw
          我要把手機號碼的中間4到8位數字替換成*
          用盡可能高效率的方法。  回復  更多評論
            
          主站蜘蛛池模板: 泸定县| 工布江达县| 崇明县| 恩平市| 海南省| 华容县| 岐山县| 铅山县| 阿拉善左旗| 山阴县| 东海县| 桂阳县| 舟山市| 高青县| 南城县| 梅州市| 宣威市| 沙洋县| 大足县| 丰顺县| 日照市| 绩溪县| 玉龙| 五家渠市| 元氏县| 大厂| 德州市| 贵德县| 通海县| 宁化县| 白银市| 元朗区| 当涂县| 青川县| 托克逊县| 全南县| 峨边| 濉溪县| 连平县| 施甸县| 册亨县|