葉明的javablog

          java學(xué)習(xí)天堂,個(gè)人關(guān)于其他blog:blog.javaworker.cn,歡迎大家訪問
          posts - 64, comments - 50, trackbacks - 0, articles - 3

          今天在解析html時(shí)間,在調(diào)用頁面頁面中替換鏈接時(shí)間發(fā)生沒有錯(cuò)誤,程序執(zhí)行的該步驟,但是就是沒有將我要求替換的內(nèi)容給替換掉。

          這個(gè)是需要替換的內(nèi)容<a href=../../08/19/10483.html>下一篇: PHP+MySQL應(yīng)用中使用XOR運(yùn)算加密算法</a>

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


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

          以前使用split拆分的時(shí)間發(fā)現(xiàn)‘.’有時(shí)間是失靈的,這個(gè)應(yīng)該是關(guān)鍵標(biāo)示的原因,但是這個(gè)replaceall竟然也不能,其他鏈接和該鏈接是一致的,替換的只是名稱和地址,其他都是一樣的

          Feedback

          # re: 郁悶的問題。關(guān)于String中replaceAll方法   回復(fù)  更多評(píng)論   

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

          # re: 郁悶的問題。關(guān)于String中replaceAll方法   回復(fù)  更多評(píng)論   

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

          # re: 郁悶的問題。關(guān)于String中replaceAll方法   回復(fù)  更多評(píng)論   

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

          # re: 郁悶的問題。關(guān)于String中replaceAll方法   回復(fù)  更多評(píng)論   

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

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

          /**
          * 將字符串 source 中的 oldStr 替換為 newStr, 并以大小寫敏感方式進(jìn)行查找
          *
          * @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 為是否設(shè)置大小寫敏感查找
          *
          * @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;
          }
          // 首先檢查舊字符串是否存在, 不存在就不進(jìn)行替換
          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) + "";
          // 新的查找開始點(diǎn)位于替換后的字符串的結(jié)尾
          findStartPos = findStartPos + newStr.length() - b;
          }
          }
          return source;
          }

          # re: 郁悶的問題。關(guān)于String中replaceAll方法   回復(fù)  更多評(píng)論   

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

          # re: 郁悶的問題。關(guān)于String中replaceAll方法   回復(fù)  更多評(píng)論   

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

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 樟树市| 尖扎县| 丰原市| 合阳县| 城步| 通辽市| 博罗县| 靖西县| 陈巴尔虎旗| 盖州市| 高雄市| 临潭县| 合山市| 遂川县| 海门市| 呼伦贝尔市| 琼中| 临潭县| 东平县| 唐山市| 彭山县| 策勒县| 东乌珠穆沁旗| 卓资县| 浮梁县| 潞城市| 漳浦县| 海原县| 沿河| 泰顺县| 绥宁县| 本溪| 土默特左旗| 县级市| 阿瓦提县| 平邑县| 邹城市| 辉南县| 和龙市| 秦安县| 边坝县|