2016-05-09 133 views
0

在java中恢復字節,爪哇 - 從字符串

// already set 
byte[] bytes = ...; 

字節數組可以轉換爲字符串如

String s = bytes.toString(); 

問題是:我怎麼能恢復相同的「字節」從「 s「嗎?

事實是,下面的代碼是錯誤的。

byte[] byteFromString = x.getBytes(); 
+0

您的問題的答案可能取決於字符串所具有的_encoding_。例如,在UTF-8中,一個字符可能由4個字節組成,但也可能只包含一個字節。 –

+1

http://stackoverflow.com/questions/19834854/how-to-cast-string-to-byte-array – ryekayo

+0

嚴格地說'String s = bytes.toString();'不是一個強制操作 – Lee

回答

0

如果你只是使用bytes.toString(),那麼不,這是不可能的。這會得到一個表示byte[]的散列碼的字符串,它基本上是隨機的,並且與byte[]的實際內容沒有任何關係。

如果byte[]其實是代表一個字符串的編碼,如UTF-8,那麼你可以做new String(bytes, StandardCharsets.UTF_8)將其轉換爲一個String,並string.getBytes(StandardCharsets.UTF_8)將其轉換回。

+0

Get!非常感謝。 –