java字符串转换

来源:互联网 发布:类似于快刀的软件 编辑:程序博客网 时间:2024/06/05 22:32
  1.  * Convert byte[] to hex string.这里我们可以将byte转换成int,然后利用Integer.toHexString(int)来转换成16进制字符串。  
  2.  * @param src byte[] data  
  3.  * @return hex string  
  4.  */     
  5. public static String bytesToHexString(byte[] src){  
  6.     StringBuilder stringBuilder = new StringBuilder("");  
  7.     if (src == null || src.length <= 0) {  
  8.         return null;  
  9.     }  
  10.     for (int i = 0; i < src.length; i++) {  
  11.         int v = src[i] & 0xFF;  
  12.         String hv = Integer.toHexString(v);  
  13.         if (hv.length() < 2) {  
  14.             stringBuilder.append(0);  
  15.         }  
  16.         stringBuilder.append(hv);  
  17.     }  
  18.     return stringBuilder.toString();  
  19. }  
  20. /** 
  21.  * Convert hex string to byte[] 
  22.  * @param hexString the hex string 
  23.  * @return byte[] 
  24.  */  
  25. public static byte[] hexStringToBytes(String hexString) {  
  26.     if (hexString == null || hexString.equals("")) {  
  27.         return null;  
  28.     }  
  29.     hexString = hexString.toUpperCase();  
  30.     int length = hexString.length() / 2;  
  31.     char[] hexChars = hexString.toCharArray();  
  32.     byte[] d = new byte[length];  
  33.     for (int i = 0; i < length; i++) {  
  34.         int pos = i * 2;  
  35.         d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));  
  36.     }  
  37.     return d;  
  38. }  
  39. /** 
  40.  * Convert char to byte 
  41.  * @param c char 
  42.  * @return byte 
  43.  */  
  44.  private byte charToByte(char c) {  
  45.     return (byte"0123456789ABCDEF".indexOf(c);  
  46. }  
0 0
原创粉丝点击