Pretvori Hex u ASCII na Javi

1. Pregled

U ovom ćemo brzom članku obaviti nekoliko jednostavnih pretvorbi između Hex i ASCII formata.

U tipičnom slučaju upotrebe, Hex format se može koristiti za zapisivanje vrlo velikih cijelih vrijednosti u kompaktnom obliku. Na primjer, AD45 je kraći od decimalnog ekvivalenta 44357, a kako se vrijednosti povećavaju, razlika u duljini postaje još izraženija.

2. ASCII u heks

Pogledajmo sada naše mogućnosti pretvorbe ASCII vrijednosti u hex:

  1. Pretvori niz u niz znakova
  2. Uloge svakog ugljen do an int
  3. Koristiti Integer.toHexString () pretvoriti u heksadecimalni

Evo kratkog primjera kako možemo postići gore navedene korake:

privatni statički niz asciiToHex (niz asciiStr) {char [] chars = asciiStr.toCharArray (); StringBuilder hex = novi StringBuilder (); za (char ch: znakovi) {hex.append (Integer.toHexString ((int) ch)); } return hex.toString (); }

3. Šesnaestougaoni u ASCII format

Slično tome, napravimo pretvorbu Hex u ASCII format u tri koraka:

  1. Izrežite Hex vrijednost u 2 ugljen skupine
  2. Pretvorite ga u bazni 16 Integer pomoću Integer.parseInt (hex, 16) i bacili na ugljen
  3. Dodajte sve znakove u a StringBuilder

Pogledajmo primjer kako možemo postići gore navedene korake:

privatni statički niz hexToAscii (niz hexStr) {StringBuilder izlaz = novi StringBuilder (""); for (int i = 0; i <hexStr.length (); i + = 2) {String str = hexStr.substring (i, i + 2); output.append ((char) Integer.parseInt (str, 16)); } vrati izlaz.toString (); }

4. Test

Na kraju, pomoću ovih metoda, napravimo brzi test:

@Test javna statička praznina whenHexToAscii () {String asciiString = "www.baeldung.com"; Niz hexEquivalent = "7777772e6261656c64756e672e636f6d"; assertEquals (asciiString, hexToAscii (hexEquivalent)); } @Test javna statička praznina whenAsciiToHex () {String asciiString = "www.baeldung.com"; Niz hexEquivalent = "7777772e6261656c64756e672e636f6d"; assertEquals (hexEquivalent, asciiToHex (asciiString)); }

5. Zaključak

Da zaključimo, pogledali smo najjednostavnije načine pretvorbe između ASCII i Hex pomoću Java.

Provedbu svih ovih primjera i isječaka koda možete pronaći u projektu github - jednostavno uvezite projekt i pokrenite kakav jest.