2012-01-23 37 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