そんな時、.NETであれば「[.NET]文字列の16進数変換&復元」でConvertというクラスで簡単に操作できます。で、Javaでそんなクラスってないかなぁ?って調べてみたらありました。
バイト列と文字列の相互変換って結構あるので、こういうのがあると助かるんですよね。Java1.6から利用可能なので、大半の仕事で適用可能ですね。
コードはこんな感じ。
public static void main(String[] args) {
// 文字列からUTF8のバイト列に変換
byte[] data = "1192つくろう鎌倉幕府!!".getBytes();
// 001122形式の文字列に変換
String hexText = DatatypeConverter.printHexBinary(data);
System.out.println("16進文字列 [" + hexText + "]");
// UTF8のバイト列からstringに変換
String decText = new String(DatatypeConverter.parseHexBinary(hexText));
System.out.println("復元結果 [" + decText + "]");
}
// 文字列からUTF8のバイト列に変換
byte[] data = "1192つくろう鎌倉幕府!!".getBytes();
// 001122形式の文字列に変換
String hexText = DatatypeConverter.printHexBinary(data);
System.out.println("16進文字列 [" + hexText + "]");
// UTF8のバイト列からstringに変換
String decText = new String(DatatypeConverter.parseHexBinary(hexText));
System.out.println("復元結果 [" + decText + "]");
}
■実行結果
16進文字列 [31313932E381A4E3818FE3828DE38186E98E8CE58089E5B995E5BA9CEFBC81EFBC81]
復元結果 [1192つくろう鎌倉幕府!!]
復元結果 [1192つくろう鎌倉幕府!!]
・・・しかし、AndroidのSDKには含まれません。。ということで参考になるソースはこちら。 DatatypeConverterImpl
0 件のコメント:
コメントを投稿