2016-05-09 129 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!非常感谢。 –