Преобразувайте Hex в ASCII в Java

1. Общ преглед

В тази бърза статия ще направим няколко прости преобразувания между Hex и ASCII форматите.

В типичен случай на използване, Hex форматът може да се използва за записване на много големи цели числа в компактна форма. Например AD45 е по-кратък от десетичния еквивалент 44357 и с увеличаване на стойностите разликата в дължината става още по-изразена.

2. ASCII до Hex

Сега, нека разгледаме нашите опции за конвертиране на ASCII стойности в Hex:

  1. Преобразуване на String в масив char
  2. Изхвърлете всеки знак в int
  3. Използвайте Integer.toHexString (), за да го конвертирате в Hex

Ето един бърз пример как можем да постигнем горните стъпки:

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. Шестнадесетичен формат ASCII

По същия начин, нека направим преобразуване на формат Hex в ASCII в три стъпки:

  1. Нарежете стойността Hex в 2 групи символи
  2. Преобразувайте го в основата 16 Integer, като използвате Integer.parseInt (шестнадесетичен, 16) и хвърлете в char
  3. Добавете всички символи в StringBuilder

Нека разгледаме пример как можем да постигнем горните стъпки:

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. Тест

И накрая, използвайки тези методи, нека направим бърз тест:

@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. Заключение

В заключение разгледахме най-простите начини за конвертиране между ASCII и Hex с помощта на Java.

Внедряването на всички тези примери и кодови фрагменти може да бъде намерено в проекта github - просто импортирайте проекта и стартирайте както е.