【问题标题】:How to escape backslash in Java [duplicate]如何在Java中转义反斜杠[重复]
【发布时间】:2014-12-01 06:10:25
【问题描述】:

我试图通过 Scanner 将 Json 字符串作为输入转义并打印到控制台, 我无法通过将“\”替换为“\\”来逃避“\”, 我收到 PatternSyntaxException 这是我的代码

Scanner s = new Scanner(System.in);
        String str = s.next();
        String s3 = "";
        if (str.contains("\\")) {
            s3 = str.replaceAll("\\", "\\\\");
            System.out.println(s3);
        }

这是我对扫描仪的输入 {“名称”:“诺基亚”}\

请帮帮我!

【问题讨论】:

  • 看起来像 XY 问题;如果这是 JSON,为什么不使用 JSON 库?
  • 这是很久以前关闭的,但以防万一有人在寻找它:给定一个字符串 s 这是一个类似 Windows 的路径,其中反斜杠 可能会或可能不会已被转义,您可以如有必要插入额外的反斜杠:s.replaceAll( "([^\\\\])(\\\\)([^\\\\])", "$1\\\\\\\\$3" )

标签: java


【解决方案1】:

如果您使用正则表达式,则必须使用 4 个反斜杠 \\\\ 将反斜杠解析为文字。 所以使用s3 = str.replaceAll("\\\\", someOtherString);

【讨论】:

    猜你喜欢
    • 2017-03-03
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    • 2012-10-03
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多