Existe-t-il un meilleur moyen d'obtenir ce résultat ? Cette fonction échoue si num a plus de chiffres que de chiffres, et j'ai l'impression qu'elle devrait être dans la bibliothèque quelque part (comme Integer.toString(x,"%3d") ou quelque chose comme ça)
static String intToString(int num, int digits) {
StringBuffer s = new StringBuffer(digits);
int zeroes = digits - (int) (Math.log(num) / Math.log(10)) - 1;
for (int i = 0; i < zeroes; i++) {
s.append(0);
}
return s.append(num).toString();
}
1 votes
Vous devriez changer la réponse acceptée pour celle de @begray. La sienne est bien meilleure pour la grande majorité des applications et pour une quantité de zéros modifiable, vous pouvez utiliser
String.format("%0" + digits + "d", num);
2 votes
Bien sûr. À l'époque, j'ai accepté celle d'Elijah parce que mon projet était bloqué sur Java 1.4, mais je ne pense pas que cela vaille la peine de détourner 100 000 autres utilisateurs de ce qui s'est avéré fonctionner pour moi.
0 votes
J'ai voté pour fermer cette question en tant que duplicata. Bien que cette question ait été posée en premier, je pense que le doublon est légèrement plus clair à lire et semble être la question canonique (d'après les votes positifs et le nombre de vues).
0 votes
@Duncan, pourquoi marquer une question vieille de 6 ans comme étant dupliquée ?
2 votes
@AngelKoh J'ai expliqué pourquoi dans mon commentaire.