ivaneeo's blog

          自由的力量,自由的生活。

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          我有這樣一句sql語句:select ${ 0},${ 1},${2 },${2 } from t where ${0}='${2}'。

          我的目的是先找出所有的變量,并把變量的值替換為: V變量名。

                  String statement = "select ${ 0},${ 1},${2 },${2 } from t where ${0}='${2}'";
                  System.out.println(statement);
                  Matcher m = Pattern.compile("(\\$\\{\\s*(\\d+)\\s*\\})").matcher(statement);
                  StringBuffer buffer = new StringBuffer();
                  while(m.find()) {
                      System.out.println("Matched:'" + m.group(1) + "' at position " + m.start());
                      System.out.println("Matched:'" + m.group(2) + "' at position " + m.start());
                      int temp = Integer.parseInt(m.group(2));
                      if(temp == 0)
                          m.appendReplacement(buffer, "V0");
                      else if(temp == 1)
                          m.appendReplacement(buffer, "V1");
                      else if(temp == 2)
                          m.appendReplacement(buffer, "V2");
                  }
                  m.appendTail(buffer);
                  System.out.println(buffer.toString());

          輸出結果:
          select ${ 0},${ 1},${2 },${2 } from t where ${0}='${2}'
          Matched:'${ 0}' at position 7
          Matched:'0' at position 7
          Matched:'${ 1}' at position 13
          Matched:'1' at position 13
          Matched:'${2 }' at position 19
          Matched:'2' at position 19
          Matched:'${2 }' at position 25
          Matched:'2' at position 25
          Matched:'${0}' at position 44
          Matched:'0' at position 44
          Matched:'${2}' at position 50
          Matched:'2' at position 50
          select V0,V1,V2,V2 from t where V0='V2'

          這里要逐個替換就要使用類Matcher的appendReplacement()和appendTail()方法。
          posted on 2005-09-12 13:31 ivaneeo 閱讀(467) 評論(0)  編輯  收藏 所屬分類: java魔力
          主站蜘蛛池模板: 玛多县| 沾益县| 昌宁县| 吉安市| 广水市| 宁阳县| 青阳县| 多伦县| 武定县| 德阳市| 阳原县| 确山县| 古浪县| 和林格尔县| 高尔夫| 商水县| 长白| 磐石市| 枣庄市| 石嘴山市| 连城县| 灌阳县| 个旧市| 永靖县| 河间市| 视频| 库伦旗| 子洲县| 博爱县| 东宁县| 寿宁县| 吴忠市| 大悟县| 灵璧县| 博乐市| 永吉县| 成都市| 集安市| 迭部县| 神农架林区| 平邑县|