質問
String または byte[]を16進に変換するには
- 投稿日時:2008/01/26 10:30

String または byte[]をデバッグ目的で16進に変換するには、1文字ずつ処理すればいいのですが、ヘキサ表示なんてだれもが行うものですからすでにライブラリ化されていないでしょうか?
sun.misc.HexDumpEncoder クラスは見つけたのですが、このほかに16進変換に使えるクラスはありませんでしょうか。(apache-commonsなら安心して使えるのでうれしいです)
HexDumpEncoder encoder = new HexDumpEncoder();
String encoded = encoder.encode("abcde".getBytes());
System.out.println(encoded);
出力
0000: 61 62 63 64 65
希望としては 0000: は不要なので
61 62 63 64 65
6162636465
0x6162636465
などに変換できると助かります。
回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:2008/01/26 13:49
IntegerクラスのtoHexString()メソッドでは、だめですか。
(私は、結果の気に入らない部分は適当に加工します。)
この回答への補足
toHexStringを使う場合次のような感じになると思うのですが、毎度実装するのが面倒なのと、符号の考慮を忘れがちなので、できればライブラリを使いたいと思っています。
static String toHexString(String str, String encode) {
byte[] bytes = str.getBytes(encode);
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
int i = b;
if(i<0) i+=256; // 符号の考慮
String hex = Integer.toHexString(i).toUpperCase();
sb.append(hex);
sb.append(' ');
}
return sb.toString();
}
- 質問者のみ
- この回答にお礼をつける
このQ&Aを見た人はこんなQ&Aも見ています
注目の記事
ストレスをふっとばす!五月病撃退法
コレって五月病?治療するにはどうすればいいの?連休明けに気をつけたい五月病の撃退法を教えます!
このQ&Aを見た人がよく見るQ&A
このカテゴリで人気のQ&Aランキング
- 4IOException ってどういうときに起...
- 5tomcatとapacheを何で一緒に使いま...
- 6画像読み込みのエラー処理
- 7submitとは?
- 8staticメソッドの長所短所
- 9文字列が数字のみで構成されている...
- 10HTTPステータス404表示されてしまう
- 11Stringオブジェクトの文字コードの変換
- 12配列から最大値・最小値
- 13Tomcatでエラー
- 14サーブレットとJSPについて
- 15文字列から半角スペースと全角スペ...
- 16Eclipseで文字の大きさの変更
- 17eclipseでTomcat起動時にエラーがでる
- 18文字列から数字を取り出す方法
- 19String型の日付(2005/11/25)の比較
- 20メソッドの引数としてのthisの意味





