Java:将字节字符串转换为字节数组

时间:2018-11-10 15:07:18

标签: java arrays byte

我想将我的byte[]转换为String,然后将该String转换为byte[]

所以

byte[] b = myFunction();
String bstring = b.toString();
/* Here the methode to convert the bstring to byte[], and call it ser */
String deser = new String(ser);

bstring给了我[B@74e752bb

然后将String转换为byte[]。我没有按此顺序使用它,但这是一个示例。

我该如何用Java做到这一点?

亲切的问候,

Stijn

3 个答案:

答案 0 :(得分:3)

将byte []转换为String时,应使用此

new String(b, "UTF-8");

而不是

b.toString();

将字节数组转换为String时,应始终指定字符编码,并在从String转换回字节数组时使用相同的编码。最好使用UTF-8编码,因为它非常强大且紧凑,可以表示超过一百万个字符。如果未指定字符编码,则可能会使用平台的默认编码,当从字节数组转换为String时,该默认编码可能无法正确表示所有字符。

您的方法处理得当时,应这样写:

    public static void main(String args[]) throws Exception {
        byte[] b = myFunction();
//      String bstring = b.toString(); // don't do this
        String bstring = new String(b, "UTF-8");
        byte[] ser = bstring.getBytes("UTF-8");
        /* Here the methode to convert the bstring to byte[], and call it ser */
        String deser = new String(ser, "UTF-8");
    }

答案 1 :(得分:1)

我不是专家,但是您应该尝试使用“ Byte”类提供的方法,并在必要时尝试一些循环。尝试byte b = Byte.parseByte(String s)将字符串转换为字节,并尝试String s = Byte.toString(byte b)将字节转换为字符串。希望这会有所帮助:)。

答案 2 :(得分:1)

您可以这样做,

String string = "Your String";
byte[] bytesFromString = string.getBytes(); // get bytes from a String
String StringFromByteArray = new String(bytesFromString); // get the String from a byte array