我想在真正执行任何转义机制之前检查是否应该转义特定的字符串。例如:如果字符串是"msg\t
" 所以我想转义它,但如果字符串"msg\\t"
表示它已经转义,或者例如 "msg" 表示根本不需要转义。
有没有办法检查很容易?
我想在真正执行任何转义机制之前检查是否应该转义特定的字符串。例如:如果字符串是"msg\t
" 所以我想转义它,但如果字符串"msg\\t"
表示它已经转义,或者例如 "msg" 表示根本不需要转义。
有没有办法检查很容易?
根据您的描述,这应该可以。它使用映射将实际值映射到表示它的字母。需要合并额外的逻辑来避免反斜杠,因为它们有双重目的,需要单独处理。
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