Java >> Java-zelfstudie >  >> Java

Hex converteren naar/van ASCII in Java

Hallo. In deze zelfstudie onderzoeken we HEX naar/van ASCII-conversie in Java.

1. Inleiding

Om ASCII te converteren naar hexadecimale waarden in Java gebeurt in de volgende stappen –

  • Verberg de tekenreeks naar de tekenreeks
  • Converteer elke string naar een geheel getal
  • Converteer elk geheel getal naar toHexString()

Hex naar ASCII-conversie in Java gebeurt in de volgende stappen –

  • Snijd de hexadecimale waarde in groepen van twee tekens
  • Converteer het naar Base16 integer met behulp van Integer.valueOf(…) methode en cast naar char
  • Voeg alle tekens toe in StringBuilder

2. Oefenen

Laten we vanaf hier wat oefenen en ik neem aan dat je Java 1.8 of hoger al op je lokale computer hebt geïnstalleerd. Ik gebruik JetBrains IntelliJ IDEA als mijn favoriete IDE. Je bent vrij om de IDE van je keuze te kiezen.

2.1 De conversie van ASCII naar Hex begrijpen

Maak een implementatieklasse in de com.practice pakket en voeg de volgende code toe. De code converteert de ASCII-waarde naar een hexadecimale tekenreeks en drukt het resultaat af op de IDE-console.

AsciiToHex.java

package com.practice;

import java.util.Arrays;
import java.util.List;

public class AsciiToHex {

  private static String convertToHex(String asciiString) throws Exception {
    // convert string to char array
    char[] chrs = asciiString.toCharArray();

    StringBuilder builder = new StringBuilder();
    // iterate over each element and convert it to integer
    for (char item: chrs) {
      int i = (int) item;
      // convert int value to hex string
      builder.append(Integer.toHexString(i).toUpperCase());
    }

    return builder.toString();
  }

  public static void main(String[] args) {
    List<String> asciis = Arrays.asList(
        "good morning world", 
        "welcome to javacodegeeks", 
        "Convert ASCII to Hex in Java");
    try {
      for (String s: asciis) {
        if (!s.isEmpty()) {
          System.out.println("Original string= " + s);
          System.out.println("Hex Converted string= " + convertToHex(s) + "\n");
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Voer het bestand uit als een java-toepassing en het zal de logs in de IDE-console tonen.

Console-logboeken

Original string= good morning world
Hex Converted string= 676F6F64206D6F726E696E6720776F726C64

Original string= welcome to javacodegeeks
Hex Converted string= 77656C636F6D6520746F206A617661636F64656765656B73

Original string= Convert ASCII to Hex in Java
Hex Converted string= 436F6E7665727420415343494920746F2048657820696E204A617661

2.2 De conversie van Hex naar ASCII begrijpen

Maak een implementatieklasse in de com.practice pakket en voeg de volgende code toe. De code converteert de hex-tekenreeks naar de ASCII-waarde en drukt het resultaat af op de IDE-console.

HexToAscii.java

package com.practice;

import java.util.Arrays;
import java.util.List;

public class HexToAscii {

  private static String convertToAscii(String hexString) throws Exception {
    if (hexString.length() %2 !=0) {
      System.err.println("Input hex string is invlaid");
      throw new Exception("Input input");
    }

    StringBuilder builder = new StringBuilder();
    for (int i=0 ; i<hexString.length(); i=i+2) {
      // splitting strings into two character group
      String str = hexString.substring(i, i+2);
      // converting each character group using valueOf(...) method
      int n = Integer.valueOf(str, 16);
      // casting to char and appending to builder
      builder.append((char)n);
    }

    return builder.toString();
  }

  public static void main(String[] args) {
    List<String> hexStrings = Arrays.asList(
        "676f6f64206d6f726e696e6720776f726c64", 
        "77656c636f6d6520746f206a617661636f64656765656b73", 
        "436f6e766572742048657820746f20415343494920696e204a61766120");
    try {
      for (String s: hexStrings) {
        if (!s.isEmpty()) {
          System.out.println("Original string= " + s);
          System.out.println("Ascii Converted string= " + convertToAscii(s) + "\n");
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Voer het bestand uit als een java-toepassing en het zal de logs in de IDE-console tonen.

Console-logboeken

Original string= 676f6f64206d6f726e696e6720776f726c64
Ascii Converted string= good morning world

Original string= 77656c636f6d6520746f206a617661636f64656765656b73
Ascii Converted string= welcome to javacodegeeks

Original string= 436f6e766572742048657820746f20415343494920696e204a61766120
Ascii Converted string= Convert Hex to ASCII in Java

Dat is alles voor deze tutorial en ik hoop dat het artikel je heeft gediend met alles waar je naar op zoek was. Veel plezier met leren en vergeet niet te delen!

3. Download het project

Java Java basiskennis
Java-tag