gpt4 book ai didi

java - 将字符串转换为 byte[] 以使内容保持不变

转载 作者:行者123 更新时间:2023-11-29 09:49:35 25 4
gpt4 key购买 nike

我有一个字符串 String a = "abc";。现在我想将它转换成一个字节数组,比如 byte b[];,这样当我打印 b 时它应该显示“abc”。

我该怎么做?getBytes() 方法给出了不同的结果。

到目前为止,我的程序看起来像这样:

String a="abc";
byte b[]=a.getBytes();

我想要的是我在一个类中制作了两种方法,一种是公共(public)字节[]加密(字符串a)另一个是公共(public)字符串解密(字节[] b)加密后,我将数据保存到数据库中,但是当我取回它时,字节方法没有给出正确的输出,但我使用 String 方法获得了相同的数据,但现在我必须将它传递给 decrypt(byte[] b)如何做到这是真实的场景。

最佳答案

那么,您的第一个问题是 Java 中的字符串不是字节数组,而是字符数组,其中每个字符占用 16 位。这是为了覆盖 unicode 字符,而不是仅使用字节获得的 ascii。这意味着如果您使用 getBytes 方法,您将无法一次打印一个数组位置的字符串,因为它需要两个数组位置(两个字节)来表示一个字符。

可以做的是使用 getChars 然后将每个字符转换为一个字节,并使用相应的精度 los。这不是个好主意,因为它在正常英文字符之外不起作用!不过,你问了,所以给你 ;)

编辑:正如@PeterLawerey 所提到的,Unicode 字符使它变得更加困难,一些 unicode 字符需要多个字符。有一个很好的讨论in StackOverflow它链接到详细的 article from Oracle .

关于java - 将字符串转换为 byte[] 以使内容保持不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11357433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com