无法替换字符串

时间:2010-02-03 12:02:43

标签: java

这是我在java中的替换方法,但无法替换以下内容。

它只替换一个\

请帮忙。如果有任何身体有任何不同的替换方法吗?

我曾尝试使用java标准API,但如果不能正常工作,请尝试关注senario - > System.out.println(替换(“这个%s是问题”,“%”,“\%”));

public static String replace(String str, String sub, String rep) {
        int s, p, q;
        int slen = sub.length();
        StringBuffer sb = new StringBuffer();

        s = 0;
        p = str.indexOf(sub);
        q = p + slen;
        while (p != -1) {
            sb.append(str.substring(s, p));
            sb.append(rep);
            s = q;
            p = str.indexOf(sub, s);
            if (p != -1) {
                q = p + slen;
            }
        }
        sb.append(str.substring(s));
        return sb.toString();
    }

4 个答案:

答案 0 :(得分:2)

您可以使用replaceAll方法。你只需要小心逃避\和%(虽然我不完全理解为什么你需要四个')

String myString = "this%s is the problem";
myString = myString.replaceAll("%","\\\\%);

答案 1 :(得分:1)

在Java中转义转义符号有点单调乏味,但这应该做你想要的(如果你想要\\%):

System.out.println("this%s is the problem".replace("%" , "\\\\%"));

如果你想要\%就是这样:

System.out.println("this%s is the problem".replace("%" , "\\%"));

另请注意,对于除replaceAll以外的正则表达式的replace,这将无效。

答案 2 :(得分:0)

有一个replaceAll()方法

答案 3 :(得分:0)