例如:
StringBuffer sb=new StringBuffer();
sb.append("insert into a values(@username)")
如何将@username替换成一个'LiMing'
sb.replace不合适,有没有直接点的函数

解决方案 »

  1.   

    你是不是说sb.replace是根据索引去替换不合适啊,那样的话用String去实现替换就是了
    先把sb转换成String,然后再把替换后的String转成StringBuffer
      

  2.   

    @username
    这是oracle防止sql注入封装的参数吧
    没见过像lz这样手动替换的
      

  3.   

    public class Main {
    public static void main(String[] args) {
    StringBuffer sb=new StringBuffer();
    sb.append("insert into a values(@username,@password)");
    String str = sb.toString();
    String[] replace = {"LiMing", "Pasword"};
    System.out.println("替换前的字符串:" + str);
    System.out.println("提换后的字符串:" + replace(str, replace));
    }

    public static String replace(String str, String[] replace) {
    String[] temp = str.split("@\\w+");
    if(temp.length - 1 != replace.length) {
    return "替换的个数不一致";
    }
    StringBuffer sb = new StringBuffer();
    for(int i=0; i<replace.length; i++) {
    sb.append(temp[i]);
    sb.append(replace[i]);
    }
    sb.append(temp[temp.length - 1]);
    return sb.toString();
    }
    }这里简单写了一个,楼主可以参考参考!