Preveďte Hex na ASCII v Jave
1. Prehľad
V tomto rýchlom článku urobíme niekoľko jednoduchých konverzií medzi formátmi Hex a ASCII.
V typickom prípade použitia je možné formát Hex použiť na zapísanie veľmi veľkých celočíselných hodnôt v kompaktnom formáte. Napríklad AD45 je kratší ako jeho desatinný ekvivalent 44357 a so zvyšovaním hodnôt sa rozdiel v dĺžke stáva ešte výraznejším.
2. ASCII až Hex
Teraz sa pozrime na naše možnosti prevodu ASCII hodnôt na Hex:
- Preveďte reťazec na char pole
- Obsadiť každý char do an int
- Použite Integer.toHexString () previesť na Hex
Tu je rýchly príklad, ako môžeme dosiahnuť vyššie uvedené kroky:
private static String asciiToHex (String asciiStr) {char [] chars = asciiStr.toCharArray (); StringBuilder hex = nový StringBuilder (); pre (char ch: chars) {hex.append (Integer.toHexString ((int) ch)); } návrat hex.toString (); }
3. Formát Hex to ASCII
Podobne urobíme konverziu formátu Hex na ASCII v troch krokoch:
- Znížte Hex hodnotu na 2 char skupiny
- Preveďte ho na základňu 16 Integer pomocou Integer.parseInt (hex, 16) a obsadiť do char
- Pripojte všetky znaky v a StringBuilder
Pozrime sa na príklad, ako môžeme dosiahnuť vyššie uvedené kroky:
private static String hexToAscii (String hexStr) {StringBuilder output = new StringBuilder (""); pre (int i = 0; i <hexStr.length (); i + = 2) {String str = hexStr.substring (i, i + 2); output.append ((char) Integer.parseInt (str, 16)); } vratit vystup.toString (); }
4. Test
Nakoniec pomocou týchto metód urobíme rýchly test:
@Test public static void whenHexToAscii () {String asciiString = "www.baeldung.com"; Reťazec hexEquivalent = "7777772e6261656c64756e672e636f6d"; assertEquals (asciiString, hexToAscii (hexEquivalent)); } @Test public static void whenAsciiToHex () {String asciiString = "www.baeldung.com"; Reťazec hexEquivalent = "7777772e6261656c64756e672e636f6d"; assertEquals (hexEquivalent, asciiToHex (asciiString)); }
5. Záver
Na záver sme sa pozreli na najjednoduchšie spôsoby konverzie medzi ASCII a Hex pomocou Javy.
Implementáciu všetkých týchto príkladov a útržkov kódu nájdete v projekte github - jednoducho importujte projekt a spustite ho tak, ako je.