【问题标题】:Convert a String into a byte[] array keeping the same values将字符串转换为保持相同值的 byte[] 数组
【发布时间】:2021-05-14 11:57:33
【问题描述】:

我正在开发一个 Java 项目。 我使用密码进行编码和解码。 密码返回我一个字节数组。 由于某些原因,我必须在 String 中发送这个字节数组 您对如何取回相同的字节数组有任何想法吗?

例如,如果我有字符串:

"[B@5024d44"

我想转换为byte[],但我希望byte[] 等于[B@5024d44。有可能吗?

感谢您的回答。

【问题讨论】:

    标签: java string byte encode


    【解决方案1】:

    [B@5024d44 告诉您您有一个字节数组,并告诉您什么都没有关于其中的内容。你不能将它转换回任何有意义的东西。

    要将字节数组可逆地转换为String,请使用Base64

    【讨论】:

      【解决方案2】:

      如果您有一个字符串[B@5024d44,您可以将其转换为byte[] 数组,然后将该数组转换回字符串。这两个字符串相等,但数组不等于字符串,数组的内容也不等于字符串:

      String str = "[B@5024d44";
      byte[] arr = str.getBytes(StandardCharsets.UTF_8);
      String str1 = new String(arr, StandardCharsets.UTF_8);
      
      // strings are equal
      System.out.println(str.equals(str1)); // true
      
      // string representation of the array
      System.out.println(arr); // [B@5451c3a8
      
      // contents of the array
      System.out.println(Arrays.toString(arr));
      // [91, 66, 64, 53, 48, 50, 52, 100, 52, 52]
      

      另见:How can I convert a string into a GZIP Base64 string?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-22
        • 2012-07-06
        • 1970-01-01
        • 2017-08-21
        • 1970-01-01
        • 2012-08-05
        相关资源
        最近更新 更多