ivaneeo's blog

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

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            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());

          輸出結(jié)果:
          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魔力
          主站蜘蛛池模板: 普陀区| 盘锦市| 哈密市| 宜阳县| 盖州市| 儋州市| 交口县| 宁乡县| 琼结县| 浏阳市| 壤塘县| 石楼县| 邵武市| 上蔡县| 洪湖市| 西峡县| 嘉禾县| 汝城县| 临邑县| 吉水县| 漳平市| 高平市| 玛沁县| 浦北县| 淮阳县| 芮城县| 泽库县| 龙山县| 哈尔滨市| 鸡泽县| 宣汉县| 双鸭山市| 旬阳县| 峡江县| 丰台区| 锡林浩特市| 右玉县| 肇东市| 湖北省| 新邵县| 阳朔县|