publicstaticStringconvertStringToHex(String str){char[] chars = str.toCharArray();StringBuffer hex =newStringBuffer();for(int i =0; i < chars.length; i++){
hex.append(Integer.toHexString((int)chars[i]));}return hex.toString();}
16进制字符串转为字符串
publicstaticStringconvertHexToString(String hex){StringBuilder sb =newStringBuilder();StringBuilder temp =newStringBuilder();//49204c6f7665204a617661 split into two characters 49, 20, 4c...for(int i=0; i<hex.length()-1; i+=2){//grab the hex in pairsString output = hex.substring(i,(i +2));//convert hex to decimalint decimal =Integer.parseInt(output,16);//convert the decimal to character
sb.append((char)decimal);
temp.append(decimal);}return sb.toString();}
16进制字符串转成字节数组
/**
* 16进制的字符串表示转成字节数组
*
* @param hexString
* 16进制格式的字符串
* @return 转换后的字节数组
**/publicstaticbyte[]toByteArray(String hexString){if(StringUtils.isEmpty(hexString))thrownewIllegalArgumentException("this hexString must not be empty");
hexString = hexString.toLowerCase();finalbyte[] byteArray =newbyte[hexString.length()/2];int k =0;for(int i =0; i < byteArray.length; i++){//因为是16进制,最多只会占用4位,转换成字节需要两个16进制的字符,高位在先byte high =(byte)(Character.digit(hexString.charAt(k),16)&0xff);byte low =(byte)(Character.digit(hexString.charAt(k +1),16)&0xff);
byteArray[i]=(byte)(high <<4| low);
k +=2;}return byteArray;}