你如何打印出完全符合它的字符串?

时间:2015-06-04 01:54:03

标签: java eclipse

我的代码出现问题,因为我的文件路径在某种程度上以路径末尾的“\ n”结尾,导致尝试使用该文件时出现问题,因为它无法找到该文件。

出于调试目的,如何打印字符串包括\b \n \r等内容?

E.g。

System.out.println(file.getAbsolutePath).withSpecials()

将打印到控制台:

C:/folder/filename.extension\n

3 个答案:

答案 0 :(得分:2)

您可以尝试使用此代码转义字符串。这将处理除\u之外的所有转义,无论如何它都应该显示正常。

public static String escape(String str) {
    str = str.replace("\b", "\\b");
    str = str.replace("\t", "\\t");
    str = str.replace("\n", "\\n");
    str = str.replace("\r", "\\r");
    str = str.replace("\f", "\\f");
    str = str.replace("\'", "\\'");
    str = str.replace("\\", "\\\\");
    return str;
}

此功能可以按如下方式使用:

System.out.println(escape("123\n\rabc"));

答案 1 :(得分:1)

public class Main {

    public static void main(String arg[]) {

        String str = "bla\r\n";

        System.out.print(str); // prints "bla" and breaks line
        System.out.print(Main.withEndings(str)); // prints "bla\r\n"

        // Breaks a line
        System.out.println();

        // Every char is a number, Java uses by default UTF-16 char encoding
        char end = '\n';
        System.out.println("Char code: " + (int)end); // prints "Char code: 10"
    }

    public static String withEndings(String str) {
        // Replace the character '\n' to a string with 2 characters the '\' and the 'n',
        // the same to '\r'.
        return str.replace("\n", "\\n").replace("\r", "\\r");
    }
}

答案 2 :(得分:0)

您可以通过\n

打印string.replace("\n", "\\\\n");

所以要打印出来:System.out.println(file.getAbsolutePath().replace("\n", "\\\\n"));