System.out.println("hello world".getBytes("UTF-8"));
偶爾會返回不同的值,爲什麼?String.getBytes()的結果不一致
對不起,我還是Java的noob。
System.out.println("hello world".getBytes("UTF-8"));
偶爾會返回不同的值,爲什麼?String.getBytes()的結果不一致
對不起,我還是Java的noob。
此代碼打印一個數組(byte []),但沒有用Java打印標準數組。因此,代碼不是打印數組的內容,而是顯示一些隱藏的內存引用數組。例如「[B @ 6bbc4459」。這些信息不是非常有用,並且可能會在程序執行之間發生改變。
如果要顯示數組的內容,則必須遍歷它。
您正在打印字節數組上調用toString()
的結果。那不會顯示你的內容,因爲數組不會覆蓋toString()
- 它只是向你展示類似[[email protected]
的地方,其中[B
顯示它是一個字節數組,而@之後的值是一個哈希碼。
如果你想顯示的字節數組內容爲數字,你要像Arrays.toString
:
byte[] data = "hello world".getBytes("UTF-8");
System.out.println(Arrays.toString(data));
感謝這個例子,歡呼聲 – user747912
請告訴我們:(1)完整的編譯代碼; (2)你通常從中得到什麼; (3)你偶爾會得到什麼。 – NPE
在同一臺機器上,使用相同的JVM? –