Java で 16 進文字列のバイト配列を変換する方法

  1. Java でバイト配列を 16 進文字列に変換する HEX_ARRAY [] メソッド
  2. Java でバイト配列を 16 進文字列に変換するための Hex.encodeHexString() メソッド
  3. Java で 16 進文字列のバイト配列を変換する DatatypeConverter() メソッド
  4. Java でバイト配列を 16 進文字列に変換するための append(.format) メソッド

このチュートリアルでは、Java でバイト配列を 16 進文字列に変換する方法を説明します。

Java でバイト配列を 16 進文字列に変換する HEX_ARRAY [] メソッド

最初の方法は、この変換のために、可能なすべての 16 進値からなる HEX_ARRAY[] を使用することです。この方法は、他のどの方法よりも高速です。

コード例:

public class SimpleTesting {
    char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();
    byte b[]= new byte[2];
    b[0] = 20;
    b[1] = 10;
    char[] hexChars = new char[b.length * 2];
    for (int j = 0; j < b.length; j++) {
        int v = b[j] & 0xFF;
        hexChars[j * 2] = HEX_ARRAY[v >>> 4];
        hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F];
    }
        System.out.println(hexChars);
 }
}

出力:

140A

Java でバイト配列を 16 進文字列に変換するための Hex.encodeHexString() メソッド

Java でバイト配列を 16 進文字列に変換する最初のメソッドは、Hex.encodeHexString() メソッドです。apachecommons ライブラリなので、メソッド apache.commons.codec.binary.Hex() を最初にコンパイラー内にインポートする必要があります。

コード例:

import java.util.Arrays;
import org.apache.commons.codec.binary.Hex;

public class SimpleTesting {
    public static void main(String[] args) {
        byte[] byteArray = new byte[]
        {'S', 'i', 'm', 'p', 'l', 'e', 'T', 'e', 's',
        't', 'i', 'n', 'g'};
        System.out.println("Byte Array: "); 
        System.out.println(Arrays.toString(byteArray));
        System.out.println("Hex String Conversion: " +
                          Hex.encodeHexString(byteArray));
    }
}

出力:

Byte Array: Simple Testing
Hex String Conversion: 53696d706c652054657374696e67

Java で 16 進文字列のバイト配列を変換する DatatypeConverter() メソッド

別のアプローチは、Java の javax.xml.bind.DatatypeConverter.printHexBinary() メソッドです。このメソッドはバイトを受け取り、それを配列から Hex に変換します。

コード例:

import java.util.Arrays;

public class SimpleTesting {
    public static void main(String[] args) {
       byte byteArray[] = 
       {(byte)00, (byte)10, (byte)20, (byte)30, (byte)40};
       String hexString = 
           javax.xml.bind.DatatypeConverter
           .printHexBinary(byteArray);
       System.out.println("Byte Array: "); 
       System.out.println(Arrays.toString(byteArray));
       System.out.println("Hex String Conversion: "
                          + hexString);
    }
}

出力:

Byte Array: 
[0, 10, 20, 30, 40]
Hex String Conversion: 000A141E28

Java でバイト配列を 16 進文字列に変換するための append(.format) メソッド

使用できる別の方法は、Java で stringBuilder を使用して append(.format) を含めることです。 「バイト配列」のすべての値を変換し、それに応じて 1つずつ「16 進文字列」に変換します。

コード例:

public class SimpleTesting {
    public static void main(String[] args) {
        byte a[]= new byte[2];
        a[0] = 20;
        a[1] = 10;
        StringBuilder sb = new StringBuilder(a.length * 2);
        for(byte b: a)
            sb.append(String.format("%02x", b));
        System.out.println(sb); 
    }
}

出力:

140a

関連記事 - Java Array

  • Java で 2つの配列を連結する方法
  • 関連記事 - Java String

  • Java で文字列から文字列配列への変換を実行する方法
  • Java で 2つの配列を連結する方法
  • comments powered by Disqus