下面的代码在不同的系统中打印不同的输出。
String s = "hello?vsrd".replace('?', '\0');
System.out.println(s);
当我在我的系统(Linux Ubuntu,Netbeans 7.1)中尝试时,它打印:
当我在另一个系统( Linux Mint,Netbeans 7.1 )中尝试相同的代码时,它打印为
我确实明白它\0
在java中充当一个字符(通过引用这个答案并且显然s.length()打印10)。并且,不可打印的字符可能会像这样打印(框)。但是,为什么这仅在某些系统上起作用?是jdk版本还是操作系统的区别?我不想要替代代码,但想知道为什么会这样。你可以考虑一下String s = "hello\0vsrd";
。