例如,有下面一个字符窜update table set aaa='000' where ccc='222' and flag=:p2
下面需要实现的是如果字符窜里含有:P这样的,就将含有他的flag=:p2这一整窜替换成2>1
请教如何实现呢?谢谢

解决方案 »

  1.   

    if(str.indexOf("flag=:p2")!=-1) {    str = "2>1"; 
    }
      

  2.   

    [String].replace( "flag=:p2", "2>1" );
      

  3.   

    public class test { /**
     * @param args
     */
    public static void main(String[] args) {
    String str= "update table set aaa='000' where ccc='222' and flag=:p2";
    //如果含有":p2",则替换
    if(str.indexOf(":p2") !=-1)
    {
    str = str.replaceAll("flag=:p2", "2>1");
    System.out.println(str);
    }
    }
    }
      

  4.   

    不好意思,这只是一个举例,程序中不一定是flag=:p2,而是变化的不同的
    可能需要通过空格切割,不知道怎么实现
      

  5.   

    假设有3个空格
    可以分成4段String sub[]=new String[4];
    StringTokenizer k=new StringTokenizer(string_temp," "); 
    for(int t=0;t!=4;t++){ 
      sub[t]=k.nextToken(); 
    }
      

  6.   

    应该是
    首先将那个字符窜按空格切割,割成若干块
    然后查找每块,将含有:P的那块替换成2>1
    不知道怎么编码:(
      

  7.   

    简单的理解就是找到你要的字符串,删除他,记录下被删除字符串的位置,在相应的位置插入目标字符串
    似乎没有必要用到StringTokenizer这样的东西,用了效果反而不好
      

  8.   

    例如字符窜为str
        String[] temp=str.split(" ");
    str="";
    for(int i=0;i<temp.length; i++)
    {
    if(temp[i].indexOf(":p") !=-1)
    temp[i] = "2>1";
    str=str.concat(" "+temp[i]);
              }
    用了个比较基础的算法,可以实现了。