![](/img/trans.png)
[英]Why does System.out.println('a' == 97.0) give true
[英]Why does System.out.println() terminate at ASCII Code zero
试试这段代码-
public class WhitespaceTest
{
public static void main(String[] args)
{
int x = 0;
char c = (char) x;
System.out.println("c-->"+c+"<---this doesn't print?");
}
}
输出是-
c-->
为什么System.out.println()以ASCII码零终止?
我在Windows 7下的JCreator LE中尝试了此操作。
这取决于您的控制台执行的操作(或其他正在处理System.out
)。 System.out
会很好地传播所有信息,如果您的控制台对U + 0000没有特殊含义,那么一切都会很好。 但是,许多UI控件会将其视为终止字符。 这不是Java的“故障”,而是UI控件本身。
(仅供参考,对我而言,在Windows 7上的Windows命令提示符下运行该代码就可以了。)
在C / C ++样式字符串中,字符串的结尾由终止空字符(如您所用的情况,值为0的字符)的位置确定。 最有可能System.out.println()
调用将字符串逐字传递给操作系统,操作系统认为字符串以空字符结尾,并且仅打印到该点
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.