我有這樣的代碼,爪哇 - 新線人品問題
String str = " " ;
while( cond) {
str = str + "\n" ;
}
現在,我不知道爲什麼,在印刷時,輸出字符串不打印換行符。但是,當我添加其他字符(如str = str +「c」)時,它正在正確打印。任何人都可以幫助我,如何解決這個問題,爲什麼會發生這種情況?
我有這樣的代碼,爪哇 - 新線人品問題
String str = " " ;
while( cond) {
str = str + "\n" ;
}
現在,我不知道爲什麼,在印刷時,輸出字符串不打印換行符。但是,當我添加其他字符(如str = str +「c」)時,它正在正確打印。任何人都可以幫助我,如何解決這個問題,爲什麼會發生這種情況?
看起來像你試圖在Windows上運行上面的代碼。那麼行分隔符或新行在Windows('\ r \ n')和Unix風格('\ n')上是不同的。
所以,而不是硬編碼和使用'\ n'作爲新行。嘗試從系統中獲取新行:
String newLine = System.getProperty("line.separator");
String str = " " ;
while( cond) {
str = str + newLine ;
}
換行符被認爲是control character,默認情況下它不會在屏幕上打印特殊字符。
舉個例子,試試這個:
String str = "Hi";
while (cond) {
str += "\n"; // Syntactically equivalent to your code
}
str += "Bye";
System.out.println(str);
根據您的樣品,它不會顯示一個新行字符的唯一原因是,cond
是不正確的,因此while循環從未運行...
如果你真的想要打印,就這樣做。
String first = "C:/Mine/Java" + "\\n";
System.out.println(first);
輸出如下:
對於一個很好的參考,爲什麼會出現這種情況,請訪問:JAVA Tutorials
正如該教程中提到:前面有一個字符反斜槓是一個轉義序列,對編譯器有特殊的意義。當在打印語句中遇到轉義序列時,編譯器會相應地解釋它
希望這可能有所幫助。
Regards
你用什麼來打印'str'? – Cuga
「不打印」是什麼意思? –
我正在使用out.println – Arpssss