JAVA里16进制和字节数组互转

2014-11-14 20:45:37 · 作者: · 浏览: 24

  大括号理的就是一个byte类型的数组,里面是3个byte类型那个的数


  public static String stringToHexString(String strPart) {


  String hexString = "";


  for (int i = 0; i < strPart.length(); i++) {


  int ch = (int) strPart.charAt(i);


  String strHex = Integer.toHexString(ch);


  hexString = hexString + strHex;


  }


  return hexString;


  }


  private static String hexString="0123456789ABCDEF";


  /*


  * 将字符串编码成16进制数字,适用于所有字符(包括中文)


  */


  public static String encode(String str)


  {


  // 根据默认编码获取字节数组


  byte[] bytes=str.getBytes();


  StringBuilder sb=new StringBuilder(bytes.length*2);


  // 将字节数组中每个字节拆解成2位16进制整数


  for(int i=0;i


  {


  sb.append(hexString.charAt((bytes[i]&0xf0)>>4));


  sb.append(hexString.charAt((bytes[i]&0x0f)>>0));


  }


  return sb.toString();


  }


  /*


  * 将16进制数字解码成字符串,适用于所有字符(包括中文)


  */