Java десятичное / ASCII и базовое преобразование - PullRequest
0 голосов
/ 08 августа 2011

Я конвертирую код из Perl в Java.Я вроде застрял на поиске эквивалентов в Java.

Вот мой код Perl:

    for($i = 0; $i < strlen($hex_); $i = $i + 2)
    {
      $ascii = $ascii.chr(hexdec(substr($hex_, $i, 2))); 
    }

, поэтому в Java я могу сделать hex.substring (i, 2).Я получил эту часть.

Как бы я выполнил части chr и hexdec в Java?

Вот что у меня есть

Ответы [ 2 ]

3 голосов
/ 08 августа 2011

Вам не нужно разбирать шестнадцатеричные числа вручную, вы можете просто использовать Integer.parseInt (String s, int radix) . Точно так же есть Integer.toString (int i, int radix) , который преобразует ваше целое число в строку с желаемым основанием.

0 голосов
/ 08 августа 2011

Я на самом деле очень удивлен, что вы не использовали pack для своей версии Perl!

$ascii = pack 'H*', $hex_;

В любом случае, порт Java вашего кода Perl, если вы хотите закодировать его вручную (какв отличие от использования что-то вроде кодек Apache Commons ):

StringBuilder sb = new StringBuilder();
for (int i = 0; i + 1 < hex.length(); i += 2)
    sb.append((char) Integer.parseInt(hex.substring(i, i + 2)));
String ascii = sb.toString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...