我想转义Java字符串中的反斜杠。我尝试使用以下代码-
public static String escapeString(String str)
{
return str.replace("\", "\\");
}
这就像一个魅力。但是,后来我注意到我也有一些场景,其中"\"字符故意用于转义一些标准字符,如""、"\r"、"\t"等。好吧,我不希望这些"\"字符被转义,因为那样它们会变成像"","\r","\t",这是无意的。波纹管的例子会更清楚——
I/P 字符串-
mdlhCw~pzOb@KV\Sd@c@CGK_DZiI|AuH\rdCiNrGi^xQ}HjDkFf@_IyTf@mKNm@H}C]
O/P 字符串-
mdlhCw~pzOb@KV\Sd@c@CGK_DZiI|AuH\tdCiNrGi^xQ}HjDkFf@_IyTf@mKNm@H}C]
所以,在这里我转义了"S"之前的"\",而不是"t"之前的"\"。 除了通过检查每种可能的情况进行蛮力之外,还有其他方法可以做到这一点吗?
使用 String.replaceAll 方法,该方法接受正则表达式作为查找要替换的字符串的输入。
放置一个匹配所有反斜杠的正则表达式,但旁边有列入黑名单的字符的正则表达式除外。