Лучший способ преобразовать шестнадцатеричную строку в строку в Java? - PullRequest
3 голосов
/ 01 сентября 2010

Я вернулся строку в виде "0x52 0x01 0x23 0x01 0x00 0x13 0x00 0x40 0xa2 0x53 0x2b 0xad 0x48 0x30 0x30 0x5f 0x31 0x33 0x41 0x32 0x30 0x30 0x34 0x30 0x35 0x33 0x32 0x42 0x41 0x44".Я хочу преобразовать шестнадцатеричную строку в читаемую строку - я новичок в Java и собирался сделать это следующим образом:

Удалить пробелы и "x", затем удалить первый символ, затем удалить каждый третий символ (это 0).

Должен быть лучший способ сделать это, но я не могу найти ничего достойного Google.Помощь?! * * 1005

Ответы [ 3 ]

1 голос
/ 01 сентября 2010

Теоретически это должно работать (я думаю)

public class Test
{
    public static void main(String[] args)
    {
        String input = "0x52 0x01 0x23 0x01 0x00 0x13 0xa2 0x00 0x40 0x53 0x2b 0xad 0x48 0x5f 0x30 0x30 0x31 0x33 0x41 0x32 0x30 0x30 0x34 0x30 0x35 0x33 0x32 0x42 0x41 0x44";
        String[] tokens = input.split(" ");
        for(String token : tokens)
        {
            int temp = Integer.parseInt(token.substring(2, 4), 16);
            char c = (char)temp;
            System.out.print(c);
        }
    }
}

Однако я получаю странный вывод (запустите его, и вы увидите).Должна ли входная строка иметь смысл?(Английский-накрест)

1 голос
/ 01 сентября 2010

Если вы хотите помочь в выполнении преобразования, которое вы описали, вот подход:

  • Разделить строку на основе пробелов (теперь у вас есть массив строк, которые выглядят как 0x??

  • Для каждого элемента в массиве удалите то, что не нравится

  • Создайте строку и объедините каждый из элементов массива ввновь созданная строка.

0 голосов
/ 01 сентября 2010

почему не токен на основе 0x ..
это пробел, ноль и х
это было бы быстрее и проще, вместо того, чтобы удалять 2 символа на каждой итерации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...