尝试用另一个子字符串替换字符串的子字符串

时间:2012-03-22 14:28:32

标签: java

我正在尝试使用此字符串

where lowercase(pdd.last_name) like 'albert%' 

并使用此函数将“pdd”替换为“p”

sb.replace(queryAdd.indexOf("pdd"), (queryAdd.indexOf("pdd") + 3), "p");

其中sb是一个StringBuffer,但它不起作用,这是它实际返回的内容

where lowercase(pdpast_name) like 'albert%' 

为什么这不能用“p”代替“pdd”?

3 个答案:

答案 0 :(得分:2)

StringBuffer s = new StringBuffer("where lowercase(pdd.last_name) like 'albert%'");
    s.replace(s.indexOf("pdd"),(s.indexOf("pdd")+3), "p");
    System.out.println(s);

我认为你的sb和queryAdd有不同的数据。

答案 1 :(得分:1)

试试这个

String str = "where lowercase(pdd.last_name) like 'albert%'";
str = str.replaceFirst("pdd", "p");

答案 2 :(得分:1)

它适用于我的情况。看看我的代码(我假设这是你想要做的)....

StringBuffer sb = new StringBuffer("where lowercase(pdd.last_name) like 'albert%'");
        String queryAdd="where lowercase(pdd.last_name) like 'albert%'";
        sb.replace(queryAdd.indexOf("pdd"), (queryAdd.indexOf("pdd") + 3), "p");
        System.out.println(sb);

输出:where lowercase(p.last_name) like 'albert%'