[Resolvido] Como converter isso!

Galera tenho um programa que me gera um nome dessa forma:
Name = 00530069006C00760069006F0020004D006F006E0074;Unknown
Queria converter esse hexa para uma String.
Alguem sabe pelo menos qual classe utilizar?

Ueh, isso ja vem como string pra vc, nao?

Esse número é muito grande, acho que você possivelmente será obrigado a usar BigInteger (o número é maior que 2^64). :thumbup:

Como disse o Ilmo. Carlos, isso já deve vir como String pra você.

Parece que é uma representação dos caracters em hexa, 16 bits para cada um.

0053 = S
0069 = i
etc

Talvez você queira converter sua String desse jeito?

Não consigo pensar em nunhum jeito “automático” pra fazer a conversação, mas veja esse trecho de código:

    public static void main(String[] args) {
        String hexaStr = "00530069006C00760069006F0020004D006F006E0074";
        StringBuffer sb = new StringBuffer();
        for (int i=0; i*4 < hexaStr.length(); i++) {
            String s = hexaStr.substring(i*4, i*4+4);
            char c = (char) Integer.parseInt(s, 16);
            sb.append(c);
        }
        System.out.println(sb);
    }

A saída é

Ou talvez a seguinte forma fosse mais elegante:

    public static void main(String[] args) throws Exception {
        String hexaStr = "00530069006C00760069006F0020004D006F006E0074";        
        byte[] data = new byte[hexaStr.length()/2];
        for (int i=0; i*2 < hexaStr.length(); i++) {
            data[i] = (byte) Integer.parseInt(hexaStr.substring(i*2, i*2+2), 16);
        }
        
        String result = new String(data, "UTF-16");
        System.out.println(result);
    }

Abraços,
Sami

Uia,
Valeu… isso mesmo.