Konvertieren Sie Hex in ASCII in Java

Konvertieren Sie Hex in ASCII in Java

1. Überblick

In diesem kurzen Artikel werden einige einfache Konvertierungen zwischen den Hex- und ASCII-Formaten durchgeführt.

In einem typischen Anwendungsfall kann das Hex-Format verwendet werden, um sehr große Ganzzahlwerte in kompakter Form aufzuschreiben. Beispielsweise ist AD45 kürzer als sein Dezimaläquivalent 44357 und mit zunehmenden Werten wird der Längenunterschied noch deutlicher.

2. ASCII nach Hex

Schauen wir uns nun unsere Optionen zum Konvertieren von ASCII-Werten in Hex an:

  1. String in char-Array konvertieren

  2. Wirf jedeschar auf einint

  3. Verwenden SieInteger.toHexString(), um es in Hex umzuwandeln

Hier ist ein kurzes Beispiel, wie wir die obigen Schritte erreichen können:

private static String asciiToHex(String asciiStr) {
    char[] chars = asciiStr.toCharArray();
    StringBuilder hex = new StringBuilder();
    for (char ch : chars) {
        hex.append(Integer.toHexString((int) ch));
    }

    return hex.toString();
}

3. Hex zu ASCII-Format

Führen Sie in drei Schritten eine Hex-zu-ASCII-Formatkonvertierung durch:

  1. Schneiden Sie den Hex-Wert in 2char Gruppen

  2. Konvertieren Sie es mitInteger.parseInt(hex, 16) in Base 16 Integer und wandeln Sie es inchar um

  3. Fügen Sie alle Zeichen inStringBuilder hinzu

Schauen wir uns ein Beispiel an, wie wir die obigen Schritte erreichen können:

private static String hexToAscii(String hexStr) {
    StringBuilder output = new StringBuilder("");

    for (int i = 0; i < hexStr.length(); i += 2) {
        String str = hexStr.substring(i, i + 2);
        output.append((char) Integer.parseInt(str, 16));
    }

    return output.toString();
}

4. Test

Lassen Sie uns abschließend mit diesen Methoden einen kurzen Test durchführen:

@Test
public static void whenHexToAscii() {
    String asciiString = "www.example.com";
    String hexEquivalent =
      "7777772e6261656c64756e672e636f6d";

    assertEquals(asciiString, hexToAscii(hexEquivalent));
}

@Test
public static void whenAsciiToHex() {
    String asciiString = "www.example.com";
    String hexEquivalent =
      "7777772e6261656c64756e672e636f6d";

    assertEquals(hexEquivalent, asciiToHex(asciiString));
}

5. Fazit

Abschließend haben wir uns die einfachsten Möglichkeiten für die Konvertierung zwischen ASCII und Hex mit Java angesehen.

Die Implementierung all dieser Beispiele und Codefragmente finden Sie inin the github project - importieren Sie einfach das Projekt und führen Sie es so aus, wie es ist.