【问题标题】:How to check if String should be escaped in Java如何检查 String 是否应该在 Java 中转义
【发布时间】:2021-05-19 08:40:27
【问题描述】:

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

有什么方法可以轻松检查吗?

【问题讨论】:

    标签: java escaping stringescapeutils string-escape


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多