byte數組轉換成16進制字符串和字符數組的方法


在與硬件設備通信的時候,硬件傳回來的數據經常是十六進制的,在0-100的范圍內java會自動轉換成十進制的數字出來,但如果包含abc這些字符自動轉換就有問題了,可能變成負數了。下面提供兩個方法轉換成十六進制的 可以輸出和設備傳的時候一樣的內容(可能字母大小寫變了,在設備里大寫的輸出是小寫的)。

 


 2 
 3  public  class CommonUtil {
 4      /**  
 5       * byte數組轉換成16進制字符串 
 6       *  @param  src 
 7       *  @return  
 8        */  
 9      public  static String bytesToHexString( byte[] src){       
10            StringBuilder stringBuilder =  new StringBuilder();       
11             if (src ==  null || src.length <= 0) {       
12                 return  null;       
13            }       
14             for ( int i = 0; i < src.length; i++) {       
15                 int v = src[i] & 0xFF;       
16                String hv = Integer.toHexString(v);       
17                 if (hv.length() < 2) {       
18                    stringBuilder.append(0);       
19                }       
20                stringBuilder.append(hv);       
21            }       
22             return stringBuilder.toString();       
23        }
24     
25      /**  
26       * byte數組轉換成16進制字符數組
27       *  @param  src 
28       *  @return  
29        */  
30      public  static String[] bytesToHexStrings( byte[] src){       
31             if (src ==  null || src.length <= 0) {       
32                 return  null;       
33            }
34            String[] str =  new String[src.length];
35            
36             for ( int i = 0; i < src.length; i++) {       
37                 int v = src[i] & 0xFF;       
38                String hv = Integer.toHexString(v);       
39                 if (hv.length() < 2) {       
40                    str[i] = "0";       
41                }       
42                str[i] = hv;        
43            }       
44             return str;       
45        }
46 
47 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM