Toon posts:

[JAVA] ASCII hex waarde

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey mede Tweakers :)

Ik zit met een klein vraagstuk. Ik wil van een string bijvoorbeeld "boomstam" de ASCII hex waarden hebben.

Met behulp van : http://web.cs.mun.ca/~michael/c/ascii-table.html geeft mij dit de gewenste resultaten :

0x62 0x6f 0x6f 0x6d 0x73 0x74 0x61 0x6d

Graag wil ik enkel de : 626F6D7374616D overhouden.

Heeft iemand hier een oplossing voor?

Momenteel heb ik de volgende code om de ASCII code om de nummeric value van de ASCII character op te vragen

code:
1
2
3
4
5
6
7
8
9
10
11
public class ascii { 
    public static void main(String args[]){ 
        String s = "boomstam"; 
        char [] c = s.toCharArray(); 
        int [] i = new int [c.length]; 
        for (int j = 0;j<i.length;j++){ 
            i[j]=Character.getNumericValue(c[j]); 
            System.out.println(i[j]+"  "+c[j]); 
        } 
    } 
}

Verwijderd

Topicstarter
Erg stom van me, onderstaande code had ik al getest, maar waarschijnlijk toen met een thypo in me code, voor de geintereseerde hoe het is opgelost:

code:
1
2
3
4
5
6
7
8
9
10
11
12
public class blaat { 
    public static void main(String args[]){ 
        String s = "NASE"; 
        char [] c = s.toCharArray(); 
        int [] i = new int [c.length]; 
        for(int j = 0;j<c.length;j++){ 
            i[j]=(int) c[j];
            System.out.println(Integer.toHexString(i[j]));
            System.out.println(i[j]+"  "+c[j]); 
        } 
    } 
}

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 20:53

Robtimus

me Robtimus no like you

String.getBytes() geeft je een array met bytes (-128 tot 127). Tel daar als die negatief zijn 256 bij op en je hebt een getal tussen 0 en 255 (including).
Div 16 en mod 16 levert je je getallen op, moet je wel nog even converteren naar 0-9A-F.

Vb:
String bla geeft terug bytes 98, 108 en 97. Dat is geconverteerd 626C61 (12 is C). Klopt precies met de tabel.


Edit: ik kende die Integer.toHexString niet eens.

Stukje code:
Java:
1
2
3
4
5
6
7
8
String s = "bla";
byte[] b = s.getBytes();
StringBuffer buf = new StringBuffer();
for (int i = 0; i < b.length; i++)
{
    buf.append(Integer.toHexString(b[i]));
}
System.out.println(buf.toString());

[ Voor 49% gewijzigd door Robtimus op 22-09-2004 16:10 ]

More than meets the eye
There is no I in TEAM... but there is ME
system specs