基本的には Integer#toHexString(byte) を利用するのですが、 Java の byte 型は符号付の為、 全て正の値に直さなくてはいけません。
ソース記述例
public static void main(String[] args) {
String str = "hoge-あ";
byte[] arr = str.getBytes();
for (int i = 0; i < arr.length; i++) {
System.out.println(Integer.toHexString(arr[i] & 0xff));
}
}
を実行すると
出力結果
68
6f
67
65
2d
82
a0
また、sun.misc パッケージの HexDumpEncoder を使う方法もあります。
ソース記述例
public static void main(String[] args) {
String str = "hoge-あ";
HexDumpEncoder enc = new HexDumpEncoder();
System.out.println(enc.encode(str.getBytes()));
}
を実行すると
出力結果
0000: 68 6F 67 65 2D 82 A0