バイト配列の中身を16進数として表示する
スポンサードリンク
何度必要に駆られても、覚えられずにそのたびにぐぐっている(そしてそのたびに過去の自分のメモに引っかかりorzとなる)定石的な手順を、改めて記録しておきます。
public class ByteArrayToHexString { public static void main( String args[] ){ // 適当なバイト配列を用意 byte[] byteArray = "Michigan".getBytes(); // 結果を入れるためのバッファを用意 StringBuffer sb = new StringBuffer(); System.out.println( "byteArray: " + byteArray ); int i; for ( byte b : byteArray ){ // バイトを自然数に変換... するときは注意が必要 // もし b が負数の場合を考慮して、0xFFとの論理積をとり下位8bitの値だけをみるように i = 0xFF & (int)b; // これを、16進数で表現 String str = Integer.toHexString( i ); // バッファに追加 sb.append(str); } System.out.println( sb.toString() ); // 出力結果 : 4d6963686967616e } }
多分独学でJavaで遊んでいても、こんなふうにbyteの操作をしようとなかなか思わないはずなので、必要に迫られながら新しいことを学べるという点で、仕事って素敵ですよねぇ・・・?