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
代表十六進位輸出。
沒有留言:
張貼留言