Javaで16進数をASCIIに変換する方法

Javaで16進数をASCIIに変換する方法

JavaでHexをASCIIに、またはその逆に変換する方法を示すJavaの例を次に示します。 変換プロセスは、この式「Hex⇐⇒Decimal⇐⇒ASCII」に依存します。

  • ASCIIから16進数–文字列をchar配列に変換し、整数(10進数)にキャストしてからInteger.toHexStringをキャストして、16進数値に変換します。

  • 16進数からASCIIへ– 16進数の値をペア形式で切り取り、基数16のinterger(decimal)Integer.parseInt(hex, 16)に変換して、charにキャストし直します。

public class StringToHex{

  public String convertStringToHex(String str){

      char[] chars = str.toCharArray();

      StringBuffer hex = new StringBuffer();
      for(int i = 0; i < chars.length; i++){
        hex.append(Integer.toHexString((int)chars[i]));
      }

      return hex.toString();
  }

  public String convertHexToString(String hex){

      StringBuilder sb = new StringBuilder();
      StringBuilder temp = new StringBuilder();

      //49204c6f7665204a617661 split into two characters 49, 20, 4c...
      for( int i=0; i

出力

***** Convert ASCII to Hex *****
Original input : I Love Java!
Hex : 49204c6f7665204a61766121

***** Convert Hex to ASCII *****
Hex : 49204c6f7665204a61766121
Decimal : 7332761111181013274971189733
ASCII : I Love Java!