Конвертировать Hex в ASCII

Нужно преобразовать строку hex "4E A8 40 74 00 53 E0" в строку ASCII "N @t S ". Нигде не могу найти код, если кто знает, подскажите пожалуйста


Ответы (1 шт):

Автор решения: Nikolay Sulimov

Просто используйте цикл for, чтобы пройти через каждую пару символов в строке, преобразовать их в символ

String hex = "4EA840740053E0";
StringBuilder output = new StringBuilder();
for (int i = 0; i < hex.length(); i+=2) {
    String str = hex.substring(i, i+2);
    output.append((char)Integer.parseInt(str, 16));
}
System.out.println(output);

При использовании Java 8+ можно реализовать это таким образом

System.out.println(Arrays
        .stream(hex.split("(?<=\\G..)")) 
        .map(s -> Character.toString((char)Integer.parseInt(s, 16)))
        .collect(Collectors.joining()));
→ Ссылка