我的代码出现问题,因为我的文件路径在某种程度上以路径末尾的“\ n”结尾,导致尝试使用该文件时出现问题,因为它无法找到该文件。
出于调试目的,如何打印字符串包括\b
\n
\r
等内容?
E.g。
System.out.println(file.getAbsolutePath).withSpecials()
将打印到控制台:
C:/folder/filename.extension\n
答案 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"));