Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Преобразование из кода в символ


Автор: SID_M 8.5.2008, 10:49
У меня есть строка символов, в которой записаны шеснадцатеричные коды символов в кодировке ASCII. Как мне преобразовать это дело в строку с символами - значениями этих кодов?

Автор: LSD 8.5.2008, 13:22
Код

byte[] bytes = HexBin.decode("48656C6C6F20776F726C6421");
String s = new String(bytes, "ASCII");
System.out.println(s);

Автор: Orange 8.5.2008, 18:14
LSD, а HexBin - это откуда такой класс? Я его чего-то в стандартном api не нашёл))

Вот еще вариант:

Код

public class Hex{

 public static void main(String[] args){

  System.out.println(HexToString("48656C6C6F20776F726C6421"));

 }



 public static String HexToString(String hexText) {

   String result=null;
   String sub=null;

   if(hexText!=null && hexText.length()>0) {
   int numBytes = hexText.length()/2;

   byte[] rawToByte = new byte[numBytes];
   int offset=0;


   for(int i =0; i <numBytes; i++) {

   sub = hexText.substring(offset,offset+2);
   offset+=2;
   rawToByte[i] = (byte) (Integer.parseInt(sub,16) & 0x000000FF);
   }
  result= new String(rawToByte);
  }
 return result;
 }



}

Автор: LSD 10.5.2008, 14:36
Цитата(Orange @  8.5.2008,  19:14 Найти цитируемый пост)
LSD, а HexBin - это откуда такой класс? Я его чего-то в стандартном api не нашёл))

Ну он вообщем-то и нестандартный и есть smile
Лично я использовал com.sun.org.apache.xerces.internal.impl.dv.util.HexBin, но при желании можно найти кучу реализаций преобразования HexBIN -> byte[].

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)