Converteer Hex naar ASCII in Java
1. Overzicht
In dit korte artikel gaan we enkele eenvoudige conversies doen tussen de Hex- en ASCII-formaten.
In een typisch gebruiksscenario kan het hex-formaat worden gebruikt om zeer grote gehele getallen in een compacte vorm op te schrijven. AD45 is bijvoorbeeld korter dan het decimale equivalent 44357 en naarmate de waarden toenemen, wordt het lengteverschil nog duidelijker.
2. ASCII naar Hex
Laten we nu eens kijken naar onze opties om ASCII-waarden naar Hex te converteren:
- Converteer String naar char-array
- Cast elk char aan een int
- Gebruik Integer.toHexString () om het naar Hex te converteren
Hier is een snel voorbeeld van hoe we bovenstaande stappen kunnen bereiken:
privé statische String asciiToHex (String asciiStr) {char [] chars = asciiStr.toCharArray (); StringBuilder hex = nieuwe StringBuilder (); for (char ch: chars) {hex.append (Integer.toHexString ((int) ch)); } return hex.toString (); }
3. Hex naar ASCII-indeling
Laten we op dezelfde manier een conversie van Hex naar ASCII-indeling uitvoeren in drie stappen:
- Snijd de hexadecimale waarde in 2 char groepen
- Converteer het naar basis 16 Integer met Geheel getal.parseInt (hex, 16) en cast naar char
- Voeg alle tekens toe in een StringBuilder
Laten we naar een voorbeeld kijken hoe we bovenstaande stappen kunnen bereiken:
privé statische String hexToAscii (String hexStr) {StringBuilder output = nieuwe 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
Laten we tot slot, met behulp van deze methoden, een snelle test doen:
@Test openbare statische leegte whenHexToAscii () {String asciiString = "www.baeldung.com"; String hexEquivalent = "7777772e6261656c64756e672e636f6d"; assertEquals (asciiString, hexToAscii (hexEquivalent)); } @Test openbare statische leegte whenAsciiToHex () {String asciiString = "www.baeldung.com"; String hexEquivalent = "7777772e6261656c64756e672e636f6d"; assertEquals (hexEquivalent, asciiToHex (asciiString)); }
5. Conclusie
Tot slot hebben we gekeken naar de eenvoudigste manieren om te converteren tussen ASCII en Hex met behulp van Java.
De implementatie van al deze voorbeelden en codefragmenten is te vinden in het github-project - importeer gewoon het project en voer het uit zoals het is.