1.byte数组转String数组
public static String[] bytesToHexStrings(byte[] src, int length) { if (src == null || src.length <= 0) { return null; } String[] str = new String[length]; for (int i = 0; i < length; i++) { int v = src[i] & 0xFF; String hv = Integer.toHexString(v); if (hv.length() < 2) { str[i] = "0"+hv; continue; } str[i] = hv; } return str; }
2.byte转整型
byte [] b=new byte[3];
b[1]&0xff 得到的是十进制整数。
单个字节转整型可以这么操作。为什么要&0xff,因为int是32位,而byte是8位,这样可以去掉高位保留最低8位。至于为什么会转成int型,可以理解为字节的操作就是8位的int型操作。
eg,byte b=100;字节可以这样赋值,只要范围在127~-128之间即可
补充知识:补码是反码的绝对值+1,反码是除了符号位,其余安位取反。
还有一种方法得到整型,
String str=Integer.toHexString(int i);这里的i可以用上面的方法得到。
然后调用Integer.parseInt(s,radix);得到int类型,radix是进制数。这里填16.
3 数组和list转换
a List<String> list=Arrays.asList(array);//得到的list无法增删操作
可以new ArrayList(list);得到一个新的list可以进行增删操作
b 使用Collections.addAll()
List<String> list=new ArrayList();
String[] array={"aa","bb"};
Collections.addAll(list,array);
c 同上,获得list,list.addAll(list)
d list转数组。String[] str=list.toArray(new String[list.size()]);