0

我想转义 Java 字符串中的反斜杠。我尝试使用以下代码-

public static String escapeString(String str)
{
   return str.replace("\\", "\\\\");
}

这就像一个魅力。但是,后来我注意到我也有一些场景,其中“\”字符被故意用于转义一些标准字符,如 '\n'、'\r'、'\t' 等。好吧,我不想要这些'\' 字符会被转义,因为这样这些字符就会变成 '\n', '\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' 之前的 '\'。除了通过检查每种可能的情况来蛮力之外,还有其他方法可以做到这一点吗?

4

1 回答 1

0

使用 String.replaceAll 方法,该方法接受正则表达式作为输入来查找要替换的字符串。

放置一个匹配所有反斜杠的正则表达式,除了那些旁边有您的黑名单字符的反斜杠。

于 2017-08-03T07:05:54.257 回答