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:
- String in char-Array konvertieren
- Wirf jedes Zeichen auf einen Int
- 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:
- Schneiden Sie den Hex - Wert in 2 char Gruppen
- Konvertieren Sie es mit Integer.parseInt (hex, 16) in Base 16 Integer und wandeln Sie es in char um
- 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.