2015-03-24 1 views
2

Я новичок в android/java. Я хотел бы показать удобочитаемую строку шестнадцатеричного значения в CharSequence в EditText. The code is here. Этот код показывает строковое представление шестнадцатеричного: например 7465737420202020203f7465737420202020202020202020203f7465737420202020202020202020203fd3f7d3f7d3f77f078840ffffffffffffКак преобразовать строку с шестнадцатеричными символами в человеко-читаемое значение этого шестнадцатеричного

Это то, что я хочу, чтобы показать:

test  ?test   ?test   ?Ó÷Ó÷Ó÷ˆ@ÿÿÿÿÿÿ 

Как я должен сделать, чтобы преобразовать шестнадцатеричное значение в тексте. Я пробовал много конвертировать способы, но у меня либо были ошибки времени выполнения, либо неправильные символы.

+0

Можете ли вы показать, что вы пробовали? –

+0

Возможный дубликат [Convert hex string to int] (http://stackoverflow.com/questions/11194513/convert-hex-string-to-int) – Kiran

ответ

4

Вы можете сделать так:

String a = " 7465737420202020203f7465737420202020202020202020203f7465737420202020202020202020203fd3f7d3f7d3f77f078840ffffffffffff"; 
    a = a.trim(); 
    StringBuffer result = new StringBuffer(); 

    for (int i = 0; i < a.length(); i+=2) { 
     String sub = a.substring(i, i+2); 
     int b = Integer.parseInt(sub, 16); 
     result.append((char)b); 
    } 

    System.out.println(result); 

Этот код принимает во внимание, что исходная строка будет всегда. Нет проверок.

Это основная идея, надеюсь, что это поможет!

+1

Вместо этого используйте StringBuffer? –

+0

Хорошее предложение. Я редактировал сообщение. – Laerte

Смежные вопросы