網頁

2020/9/11

Java 轉位元組陣列為十六進位字串 convert byte array to hexadecimal string

Java 轉位元組陣列byte[]為十六進位字串(hexadecimal string)的方法如下。

使用Apache Commons Codec的Hex.encodeHexString

String s = "hello world";
byte[] bytes = s.getBytes();
String hexString = Hex.encodeHexString(bytes);

System.out.println(hexString); // 68656c6c6f20776f726c64

或用Java的Formatter.format(String format, Object... args)

String s = "hello world";
byte[] bytes = s.getBytes();

Formatter formatter = new Formatter();
for (byte b : bytes) {
    formatter.format("%02x", b);
}
String hexString = formatter.toString();
formatter.close();

System.out.println(hexString); // 68656c6c6f20776f726c64

%02x是format specifiers,也就是告訴Formatter要怎麼格式化及輸出的參數,語法如下。

%[flags][width]conversion

方括弧的部分都為選填(optional)。

  • flags:選填,調整輸出格式。0代表輸出字元不足width寬度時時前面補0。
  • width:選填,輸出字元寬度。2代表輸出字元的最小寬度為兩個字元。
  • conversion:必填,轉換方式。x代表十六進位輸出。


沒有留言:

張貼留言