本文的代码是有关于:byte与int,hex,String;byte[]和HexString,String之间的转换的。各种类型之间的转换,看下面两张图
图1 与byte有关的转换
图2 与byte[]有关的转换
1、byte转int
public static int unsignedByteToInt(byte b){
return (int)b&0xFF;
}
2、byte和String相互转换
2.1、byte转成String的三种方法
//_01 byte转换为String Byte.toString(byte b)
byte bb = 65;
System.out.println(Byte.toString(bb));
//_02 byte转换为String byte+""
System.out.println(bb+"");
//_03 byte转换为String new String(new byte[]{byte b}),这种可以将65转换成"A",而不是"65"
System.out.println(new String(new byte[]{bb}));
2.2、String转换为byte
String s = "65";
byte b3 = Byte.valueOf(s);
2.3、byte转换为Hex
public static String byteToHex(byte b){
int i = b&0xFF;
return Integer.toHexString(i);
}
3、byte[]和String与HexString之间的转换
3.1、byte[]转换为String
byte[] byteArray = new byte[] {87, 79, 87, 46, 46, 46};
String value = new String(byteArray);
System.out.println(value);
3.2、String转换为byte[]
就是用getBytes()函数
3.3、byte[]转换为HexString
public static String byteArrayToHexString(byte[] b){
StringBuilder sb = new StringBuilder(b.length*2);
for(int i= 0;i<b.length;i++){
int v = b[i]&0xff;
if(v<16){
sb.append('0');
}
sb.append(Integer.toHexString(v));
}
return sb.toString().toUpperCase();
}
3.4、HexString转换为byte[]
public static byte[] hexStringToByteArray(String s){
byte[] b = new byte[s.length()/2];
for(int i = 0 ;i<b.length;i++){
int index = i*2;
int v = Integer.parseInt(s.substring(index,index+2),16);
b[i] = (byte)v;
}
return b;
}