2012-01-23 68 views
0

我有這樣的代碼,爪哇 - 新線人品問題

String str = " " ; 

while( cond) { 

    str = str + "\n" ; 

} 

現在,我不知道爲什麼,在印刷時,輸出字符串不打印換行符。但是,當我添加其他字符(如str = str +「c」)時,它正在正確打印。任何人都可以幫助我,如何解決這個問題,爲什麼會發生這種情況?

+2

你用什麼來打印'str'? – Cuga

+0

「不打印」是什麼意思? –

+0

我正在使用out.println – Arpssss

回答

2

看起來像你試圖在Windows上運行上面的代碼。那麼行分隔符或新行在Windows('\ r \ n')和Unix風格('\ n')上是不同的。

所以,而不是硬編碼和使用'\ n'作爲新行。嘗試從系統中獲取新行:

String newLine = System.getProperty("line.separator"); 
String str = " " ; 

while( cond) { 

    str = str + newLine ; 

} 
4

換行符被認爲是control character,默認情況下它不會在屏幕上打印特殊字符。

舉個例子,試試這個:

String str = "Hi"; 
while (cond) { 
    str += "\n"; // Syntactically equivalent to your code 
} 
str += "Bye"; 
System.out.println(str); 
0

根據您的樣品,它不會顯示一個新行字符的唯一原因是,cond是不正確的,因此while循環從未運行...

1

如果你真的想要打印,就這樣做。

String first = "C:/Mine/Java" + "\\n"; 
System.out.println(first); 

輸出如下:

NEWLINE

對於一個很好的參考,爲什麼會出現這種情況,請訪問:JAVA Tutorials

正如該教程中提到:前面有一個字符反斜槓是一個轉義序列,對編譯器有特殊的意義。當在打印語句中遇到轉義序列時,編譯器會相應地解釋它

希望這可能有所幫助。

Regards