为什么\0在java中不同系统中打印不同的输出

2024-05-15

下面的代码在不同的系统中打印不同的输出。

String s = "hello?vsrd".replace('?', '\0');
System.out.println(s);

当我在我的系统中尝试时(Linux Ubuntu、Netbeans 7.1),它打印:

When I tried the same code in another system (Linux Mint, Netbeans 7.1) it printed as enter image description here

我确实明白\0充当java中的字符(通过参考这个答案 https://stackoverflow.com/questions/8623697/is-it-possible-to-add-data-to-a-string-after-adding-0-null显然s.length() prints 10)。并且,不可打印的字符可以像这样打印(框)。但是,为什么这仅在某些系统上发生?是jdk版本还是操作系统的区别?我不需要替代代码,但想知道为什么会这样。 你可以考虑一下String s = "hello\0vsrd";.


\0是不可打印的字符。

另外,在C,字符串传统上以\0,因为它们没有明确存储它们的长度。有些程序在到达该字符时会停止打印。

Netbeans 控制台确实会打印它,但字体可能没有字形,甚至没有正方形,这可能解释了不同的行为。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么\0在java中不同系统中打印不同的输出 的相关文章

随机推荐