以下のコードは、異なるシステムで異なる出力を出力しました。
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のバージョンやOSの違いですか?代替コードは必要ありませんが、なぜそうなるのかを正確に知りたいです。と考えることができますString s = "hello\0vsrd";
。