字符串转byte数组有负数 如何调整

将字符串转换为byte数组时,每个字符都将被转换为其ASCII编码的十进制值。如果某个字符的ASCII编码为负数,那么在转换为byte数组时该值仍将是负数。

如果要避免出现负数,可以使用以下代码将字符串转换为byte数组:

public static byte[] stringToByteArray(String s) {
    byte[] b = new byte[s.length()];
    for (int i = 0; i < b.length; i++) {
        b[i] = (byte) (s.charAt(i) & 0xff);
    return b;

通过对每个字符的ASCII编码执行二进制与操作(& 0xff),可以将其转换为0 ~ 255之间的有符号整数,从而避免出现负数。

  •