将字符串转换为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之间的有符号整数,从而避免出现负数。