下面的代码在不同的系统中输出不同的输出。为什么 0在java中的不同系统中输出不同的输出
String s = "hello?vsrd".replace('?', '\0');
System.out.println(s);
当我在我的系统(Linux操作系统Ubuntu,Netbeans的7.1)试过,印刷:
当我在另一系统(Linux Mint的,Netbeans的尝试相同的代码7.1)它打印为
我明白\0
充当java中的字符(by referring this answer,明显是s.length()打印)。而且,不可打印的字符可以像这样打印(方框)。但是,为什么这只适用于某些系统呢?这是jdk版本还是操作系统的差异?我不想要另外的代码,但想知道为什么会发生这种情况。 你可以考虑String s = "hello\0vsrd";
。
这两个输出是从Netbeans的输出窗口打印出来的吗?还是只有第二个? – mightyrick 2013-02-19 13:54:13
区域设置是否相同? – 2013-02-19 13:54:23
在两个系统上都打印了什么'Charset.defaultCharset()? – 2013-02-19 13:55:21