2015-06-04 3 views
2

У меня была проблема с моим кодом, потому что мой путь к файлу каким-то образом завершился с «\ n» в конце пути, который вызвал проблемы при попытке использовать файл, поскольку он не сможет найти этот файл.Как вы печатаете строку точно так, как она есть?

В целях отладки, как я могу распечатать строку, ВКЛЮЧАЯ такие вещи, как \b\n\r и т. Д.?

E.g.

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

, который будет печатать на консоли:

C:/folder/filename.extension\n 
+1

Просто используйте 'print' вместо' println', и напечатать сообщение после каждого 'print' говоря«--this должен быть на та же строка-- " – iamnotmaynard

+0

Или используйте http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#trim(), который удалит пробелы (включая разрывы строк). – iamnotmaynard

+5

Педантично вы уже печатаете строку точно так, как она есть. – immibis

ответ

2

You может попытаться использовать это кода, который избегает строки. Это позаботится обо всех побегах, кроме \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")); 
0

Вы можете напечатать \n делая string.replace("\n", "\\\\n");

Так напечатать это сделать: System.out.println(file.getAbsolutePath().replace("\n", "\\\\n"));

+2

это, вероятно, работает для \ n, но что, если есть что-то еще, например \ r? \ n в OP был скорее примером – Aequitas

+0

Для \ r выполните то же самое, что и для \ n, но используйте r вместо n. – Forseth11

+0

Нужна еще одна обратная косая черта. – iamnotmaynard

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"); 
    } 
} 
Смежные вопросы