J'ai un entier 100
, comment le formater pour ressembler à 00000100
(toujours 8 chiffres)?Comment ajouter des zéros à gauche à un nombre en Java?
Répondre
Essayez ceci:
String formattedNumber = String.format("%08d", number);
Chaque fois qu'on l'appelle une nouvelle instance formater i s créé. Je dois donc admettre qu'avec de grandes quantités de données, cela peut causer de gros problèmes de mémoire. –
Vous pouvez également utiliser la classe DecimalFormat
, comme ceci:
NumberFormat formatter = new DecimalFormat("00000000");
System.out.println(formatter.format(100)); // 00000100
String.format
utilise une chaîne de format qui est décrit here
Cela fonctionne aussi :
int i = 53;
String spaceHolder = "00000000";
String intString = String.valueOf(i);
String string = spaceHolder.substring(intString.lenght()).contract(intString);
Mais les autres exemples sont beaucoup plus faciles.
Encore une autre façon. ;)
int x = ...
String text = (""+(500000000 + x)).substring(1);
-1 => 99999999 (nines complémentaires)
import java.util.concurrent.Callable;
/* Prints.
String.format("%08d"): Time per call 3822
(""+(500000000+x)).substring(1): Time per call 593
Space holder: Time per call 730
*/
public class StringTimer {
public static void time(String description, Callable<String> test) {
try {
// warmup
for(int i=0;i<10*1000;i++)
test.call();
long start = System.nanoTime();
for(int i=0;i<100*1000;i++)
test.call();
long time = System.nanoTime() - start;
System.out.printf("%s: Time per call %d%n", description, time/100/1000);
} catch (Exception e) {
System.out.println(description+" failed");
e.printStackTrace();
}
}
public static void main(String... args) {
time("String.format(\"%08d\")", new Callable<String>() {
int i =0;
public String call() throws Exception {
return String.format("%08d", i++);
}
});
time("(\"\"+(500000000+x)).substring(1)", new Callable<String>() {
int i =0;
public String call() throws Exception {
return (""+(500000000+(i++))).substring(1);
}
});
time("Space holder", new Callable<String>() {
int i =0;
public String call() throws Exception {
String spaceHolder = "00000000";
String intString = String.valueOf(i++);
return spaceHolder.substring(intString.length()).concat(intString);
}
});
}
}
+1 pour la solution créative, mais lente :-). –
Ne fonctionne pas avec des négatifs, cependant. – polygenelubricants
Vous ne le trouverez peut-être pas aussi lent que les autres solutions, et le comportement n'est pas défini pour les négatifs. Tout comme les autres solutions, il y aura un non DDDDDDDD, où D est un chiffre, sortie pour les nombres négatifs. –
Si vous avez besoin pour analyser cette chaîne et ou support i18n envisager d'étendre la
java.text.Format
objet
. Utilisez les autres réponses pour vous aider à obtenir le format.
Si vous avez juste besoin de l'imprimer, ceci est une version plus courte:
System.out.printf("%08d\n", number);
Si Google Goyave est une option:
String output = Strings.padStart("" + 100, 8, '0');
Alternativement Apache Commons Lang:
String output = StringUtils.leftPad("" + 100, 8, "0");
- 1. Java ajouter des zéros à un nombre
- 2. Ajouter un nombre variable de zéros pour faire un nombre à six chiffres
- 3. Rembourrer un nombre avec des zéros
- 4. Comment forcer PHP à sortir un nombre précédé de zéros?
- 5. Comment ajouter un nombre à un Sqlcommand.Parameters?
- 6. Comment puis-je utiliser un manipulateur pour formater ma sortie hexagonale avec des zéros matelassées gauche
- 7. Comment puis-je placer des zéros à gauche d'un nombre donné à un maximum de 6 chiffres y compris les nombres donnés
- 8. Imprimer des flottants avec un nombre spécifique de zéros
- 9. Affichage zéros sauf si un nombre entier
- 10. Ajouter un suffixe à un nombre en utilisant les cultures
- 11. Comment puis-je ajouter des fonctionnalités similaires à un certain nombre de méthodes dans Java?
- 12. Comment ajouter des gestes à un UITableViewController?
- 13. Pear Excel Writer: tailler les zéros de gauche - comment prévenir?
- 14. Numéros avec des zéros en tête, en utilisant vb6
- 15. Comment ajouter des jours à une date en Java
- 16. Nombre de bits zéro en nombre entier sauf les zéros en tête
- 17. Eclipse - comment ajouter un fichier comportant des chaînes de droite à gauche
- 18. Java en supprimant les zéros du tableau
- 19. Comment ajouter un élément à une liste liée en Java?
- 20. numéros, à l'exclusion des zéros de fin
- 21. ajouter des virgules à un certain nombre dans jQuery
- 22. Python: Liste à ajouter à un nombre unique?
- 23. Quel module Perl peut formater un nombre avec un nombre variable de zéros en tête?
- 24. ajouter des contrôles à un panneau, positionner le de gauche à droite
- 25. Comment stocker un entier plombé par des zéros dans django
- 26. Comment ajouter des composants à un JPanel à l'exécution
- 27. Ajouter des événements MIDI à l'horloge - Java
- 28. Exécution d'une jointure gauche sur un grand nombre à plusieurs table avec des conditions
- 29. Comment puis-je générer des zéros en tête dans Ruby?
- 30. Comment ajouter un répertoire de classes java à un projet?
'8 chiffres' (au lieu de '8 nombres') serait plus correct – leonbloy