这是我在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();
}
答案 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)