将 String.getBytes[].toString 转换为 byte[]

Convert String.getBytes[].toString To byte[]

我在将字符串转换为字节时遇到问题。我的问题是:

  String hello = "hello";
    byte[] bytes = hello.getBytes();
    String byteString = bytes.toString();
   

现在我想把这个字符串转换成byte[]。 最后得到“你好”

感谢您的帮助

当你需要byte[]String时,使用new String(yourArray)

当你需要Stringbyte[]时,使用yourString.getBytes()

        String hello = "hello";
        byte[] bytes = hello.getBytes();
        String byteString = new String(bytes);
        System.out.println("byteString: " + byteString); // byteString: hello

        byte[] newArray = byteString.getBytes();
        String otherString = new String(newArray);
        System.out.println("otherString: " + otherString); // otherString: hello

字节数组的"toString()"是继承自Object的"toString()"

方法是:

    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

所以,这是...的原因,如果您调用:yourArray.toString() returns 类似于 [B@dcf3e99

我得到了问题的答案。感谢大家的提示,甚至是那些对我的问题给出负面反馈的人。

以字节为单位发送字符串并以字节为单位获取字符串的最佳方法是编码为 base64,然后在另一端进行解码。

String hello = "hello";
byte[] bytes = hello.getBytes();
String encode = com.sun.org.apache.xerces.internal.impl.dv.util.Base64.encode(bytes );
byte[] decode = com.sun.org.apache.xerces.internal.impl.dv.util.Base64.decode(encode);
System.out.println(new String(decode));

 

我这样解决了我的问题,希望对遇到这个问题的人有用。 谢谢大家