我有这样的代码,爪哇 - 新线人品问题
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