如何在Java中打印转义字符?

时间:2011-10-25 10:38:24

标签: java

当我有一个字符串如:

String x = "hello\nworld";

使用System.out时,如何让Java打印实际的转义字符(而不是将其解释为转义字符?)

例如,在致电

System.out.print(x);

我想看看:

hello\nworld

而不是:

hello
world

我希望看到实际的转义字符用于调试目的。

8 个答案:

答案 0 :(得分:25)

使用方法" StringEscapeUtils.escapeJava"在Java lib" org.apache.commons.lang"

String x = "hello\nworld";
System.out.print(StringEscapeUtils.escapeJava(x));

答案 1 :(得分:16)

一种方法是:

public static String unEscapeString(String s){
    StringBuilder sb = new StringBuilder();
    for (int i=0; i<s.length(); i++)
        switch (s.charAt(i)){
            case '\n': sb.append("\\n"); break;
            case '\t': sb.append("\\t"); break;
            // ... rest of escape characters
            default: sb.append(s.charAt(i));
        }
    return sb.toString();
}

然后您运行System.out.print(unEscapeString(x))

答案 2 :(得分:1)

你必须逃避斜线:

String x = "hello\\nworld";

答案 3 :(得分:1)

逃脱逃脱角色。

String x = "hello\\nworld";

答案 4 :(得分:1)

System.out.println("hello \\nworld");

答案 5 :(得分:0)

Java的转义序列与C中的转义序列相同。 使用String x = "hello\\nworld";

答案 6 :(得分:0)

尝试逃避\\n

之类的反斜杠

答案 7 :(得分:-1)

您可能想查看this method。虽然这可能比你想要的更多。或者,对新行,回车符和制表符使用String替换方法。请记住,还有unicode和十六进制序列等。