gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 05:10:45 25 4
gpt4 key购买 nike

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

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

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

enter image description here

当我在另一个系统(Linux Mint、Netbeans 7.1)中尝试相同的代码时,它打印为
enter image description here

我明白 \0在 java 中充当字符( by referring this answer,显然 s.length() 打印 10)。并且,不可打印的字符可能会像这样打印(框)。但是,为什么这只适用于某些系统?是jdk版本还是操作系统的区别?我不想要替代代码,但想知道为什么会这样。
你可以考虑 String s = "hello\0vsrd"; .

最佳答案

\0是不可打印的字符。

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

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

关于java - 为什么\0在java中的不同系统中打印不同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14959169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com