É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
....
Que diriez-vous Character.getNumericValue
?
Je préfère fortement Character.digit
.
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.
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;