下面的代碼在不同的系統中輸出不同的輸出。爲什麼 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