web-dev-qa-db-fra.com

Quelle est la façon "Java" de convertir les caractères (chiffres) en ints

Étant donné le code suivant:

    char x = '5';
    int a0 = x - '0'; // 0
    int a1 = Integer.parseInt(x + ""); // 1
    int a2 = Integer.parseInt(Character.toString(x)); // 2
    int a3 = Character.digit(x, 10); // 3
    int a4 = Character.getNumericValue(x); // 4
    System.out.printf("%d %d %d %d %d", a0, a1, a2, a3, a4);

(version 4 créditée à: casablanca )

Que considérez-vous être le " meilleur moyen " pour convertir un char en un int? ("( meilleur moyen " ~ = moyen idiomatique )

Nous ne convertissons pas la valeur numérique réelle du caractère, mais la valeur de la représentation.

Par exemple.:

convert('1') -> 1
convert('2') -> 2
....
26
Andrei Ciobanu

Que diriez-vous Character.getNumericValue ?

43
casablanca

Je préfère fortement Character.digit.

15
jacobm

La première méthode. C'est le plus léger et le plus direct, et correspond à ce que vous pourriez faire dans d'autres langues (de niveau inférieur). Bien sûr, sa gestion des erreurs laisse à désirer.

7

Si la vitesse est critique (plutôt que la validation, vous pouvez combiner le résultat), par exemple.

char d0 = '0';
char d1 = '4';
char d2 = '2';
int value = d0 * 100 + d1 * 10 + d2 - '0' * 111;
2
Peter Lawrey