葉明的javablog

          java學習天堂,個人關于其他blog:blog.javaworker.cn,歡迎大家訪問
          posts - 64, comments - 50, trackbacks - 0, articles - 3

          今天在解析html時間,在調用頁面頁面中替換鏈接時間發生沒有錯誤,程序執行的該步驟,但是就是沒有將我要求替換的內容給替換掉。

          這個是需要替換的內容<a href=../../08/19/10483.html>下一篇: PHP+MySQL應用中使用XOR運算加密算法</a>

          不知道是什么原因,replassall竟然不能替換,是找不到源里的數據,還是其他有問題呢?其他頁面都能替換掉,就是有1-2個頁面不能替換,郁悶。是不是字符編碼的問題?有誰知道嗎?請賜教


          我使用indexof("")時間發現里邊確實存在。該內容,,我需要替換的字符就是‘<a href=../../08/19/10483.html>下一篇: PHP+MySQL應用中使用XOR運算加密算法</a>’,難道是‘../’的問題

          以前使用split拆分的時間發現‘.’有時間是失靈的,這個應該是關鍵標示的原因,但是這個replaceall竟然也不能,其他鏈接和該鏈接是一致的,替換的只是名稱和地址,其他都是一樣的

          Feedback

          # re: 郁悶的問題。關于String中replaceAll方法   回復  更多評論   

          2007-09-15 09:09 by BeanSoft
          replaceAll 參數是正則表達式, 不是普通的字符串. 看看有沒有不符合要求的字符串.

          # re: 郁悶的問題。關于String中replaceAll方法   回復  更多評論   

          2007-09-15 09:22 by 千里冰封
          樓上說的有道理,特別是.它在正則表達式里面有特殊的含 義

          # re: 郁悶的問題。關于String中replaceAll方法   回復  更多評論   

          2007-09-15 09:31 by lovajava_ye
          實際上要求替換的字符就是‘<a href=../../08/19/10483.html>下一篇: PHP+MySQL應用中使用XOR運算加密算法</a>’這個字符串,我看了,doc上說‘\’和‘$’符號這個要注冊,我這個里邊沒有這些字符啊

          # re: 郁悶的問題。關于String中replaceAll方法   回復  更多評論   

          2007-09-15 09:55 by BeanSoft
          最好還是用我們自己實現的替換字符串的方法來做(JDK 1.4 之前找的代碼):

          // ------------------------------------ 字符串處理方法
          // ----------------------------------------------

          /**
          * 將字符串 source 中的 oldStr 替換為 newStr, 并以大小寫敏感方式進行查找
          *
          * @param source
          * 需要替換的源字符串
          * @param oldStr
          * 需要被替換的老字符串
          * @param newStr
          * 替換為的新字符串
          */
          public static String replace(String source, String oldStr, String newStr) {
          return replace(source, oldStr, newStr, true);
          }

          /**
          * 將字符串 source 中的 oldStr 替換為 newStr, matchCase 為是否設置大小寫敏感查找
          *
          * @param source
          * 需要替換的源字符串
          * @param oldStr
          * 需要被替換的老字符串
          * @param newStr
          * 替換為的新字符串
          * @param matchCase
          * 是否需要按照大小寫敏感方式查找
          */
          public static String replace(String source, String oldStr, String newStr,
          boolean matchCase) {
          if (source == null) {
          return null;
          }
          // 首先檢查舊字符串是否存在, 不存在就不進行替換
          if (source.toLowerCase().indexOf(oldStr.toLowerCase()) == -1) {
          return source;
          }
          int findStartPos = 0;
          int a = 0;
          while (a > -1) {
          int b = 0;
          String str1, str2, str3, str4, strA, strB;
          str1 = source;
          str2 = str1.toLowerCase();
          str3 = oldStr;
          str4 = str3.toLowerCase();
          if (matchCase) {
          strA = str1;
          strB = str3;
          } else {
          strA = str2;
          strB = str4;
          }
          a = strA.indexOf(strB, findStartPos);
          if (a > -1) {
          b = oldStr.length();
          findStartPos = a + b;
          StringBuffer bbuf = new StringBuffer(source);
          source = bbuf.replace(a, a + b, newStr) + "";
          // 新的查找開始點位于替換后的字符串的結尾
          findStartPos = findStartPos + newStr.length() - b;
          }
          }
          return source;
          }

          # re: 郁悶的問題。關于String中replaceAll方法   回復  更多評論   

          2007-09-15 21:25 by DoubleHeart
          '.'這個也是正則里的特殊符號呀
          你最好去用Apache的Commons下的StringUtils.replace()。
          而不是用一些效率很低、實現也比較丑陋的私有實現方式。

          # re: 郁悶的問題。關于String中replaceAll方法   回復  更多評論   

          2007-09-15 22:05 by BeanSoft
          找找資料把 '.' 轉義了就好.

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 胶南市| 珲春市| 仙居县| 夏津县| 常德市| 二手房| 天峨县| 乐山市| 成安县| 临泽县| 舒城县| 东阿县| 永济市| 威信县| 道孚县| 弥渡县| 繁昌县| 昌吉市| 扬州市| 太原市| 桃源县| 连山| 平阳县| 吉木乃县| 伊川县| 资源县| 子洲县| 离岛区| 凤山市| 新绛县| 荥阳市| 谷城县| 琼海市| 遵义县| 沙坪坝区| 米易县| 资溪县| 长丰县| 行唐县| 贡嘎县| 凤凰县|