Konvertieren Sie Hex in Java in ASCII

1. Übersicht

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. Zum Beispiel ist AD45 kürzer als sein Dezimaläquivalent 44357 und mit zunehmenden Werten wird der Längenunterschied noch deutlicher.

2. ASCII zu Hex

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

  1. String in char-Array konvertieren
  2. Wirf jedes Zeichen auf einen Int
  3. Verwenden Sie Integer.toHexString () , um es in Hex zu konvertieren

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 zum ASCII-Format

Führen Sie in drei Schritten eine Konvertierung des Hex-zu-ASCII-Formats durch:

  1. Schneiden Sie den Hex - Wert in 2 char Gruppen
  2. Konvertieren Sie es mit Integer.parseInt (hex, 16) in Base 16 Integer und wandeln Sie es in char um
  3. Fügen Sie alle Zeichen in einem StringBuilder 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. Testen

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

@Test public static void whenHexToAscii() { String asciiString = "www.baeldung.com"; String hexEquivalent = "7777772e6261656c64756e672e636f6d"; assertEquals(asciiString, hexToAscii(hexEquivalent)); } @Test public static void whenAsciiToHex() { String asciiString = "www.baeldung.com"; String hexEquivalent = "7777772e6261656c64756e672e636f6d"; assertEquals(hexEquivalent, asciiToHex(asciiString)); }

5. Schlussfolgerung

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

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