0

我想在真正执行任何转义机制之前检查是否应该转义特定的字符串。例如:如果字符串是"msg\t" 所以我想转义它,但如果字符串"msg\\t" 表示它已经转义,或者例如 "msg" 表示根本不需要转义。

有没有办法检查很容易?

4

1 回答 1

0

根据您的描述,这应该可以。它使用映射将实际值映射到表示它的字母。需要合并额外的逻辑来避免反斜杠,因为它们有双重目的,需要单独处理。

Map<String,String> esc = Map.of( "\t", "t", "\n", "n", "\f", "f");
String s = "msg\n msg\\t msg\\n msg\n";

for (Entry<String,String> e : esc.entrySet()) {
    s = s.replace(e.getKey(), "\\"+e.getValue());
}

System.out.println(s);

印刷

msg\n msg\t msg\n msg\n
于 2021-02-16T14:37:58.770 回答