2009-07-11 12 views

Répondre

15

je ne vois pas pourquoi vous devriez avoir à convertir en chaîne ... En fait, c'est ce que parseInt utilise:

public static int digit(char ch, int radix)

int hv = Character.digit(c,16); 
if(hv<0) 
    //do something else because it's not hex then. 
0

Jetez un oeil à Commons Codec et en particulier la classe Hex.

http://commons.apache.org/codec/apidocs/org/apache/commons/codec/binary/Hex.html

Vous devriez être en mesure de convertir un tableau de caractères hexadécimal ou chaîne à une valeur int en utilisant la méthode toDigit():

protected static int toDigit(char ch, int index) 

Vous aurez besoin de prendre DecoderException bien. Il existe également des méthodes pour convertir un char [] ou un String en tableau d'octets correspondant.

5
int value; 
try { 
    value = Integer.parseInt(Character.toString(c), 16); 
} 
catch (NumberFormatException e) { 
    throw new IllegalArgumentException("Not a hex char"); 
} 
1

(octet) Integer.parseInt ("a", 16)

5

Je l'ai trouvé moi-même bien.

int i = Character.digit('A',16); 
Questions connexes