Ho un numero intero 100
, come si formatta in modo che assomigli a 00000100
(sempre a 8 cifre di lunghezza)?Come aggiungere gli zeri con riempimento a sinistra a un numero in Java?
risposta
Prova questo:
String formattedNumber = String.format("%08d", number);
Ogni volta che viene chiamata una nuova istanza formater i s creato. Quindi devo ammettere che con grandi quantità di dati può causare grossi problemi di memoria. –
È possibile anche utilizzare la classe DecimalFormat
, in questo modo:
NumberFormat formatter = new DecimalFormat("00000000");
System.out.println(formatter.format(100)); // 00000100
String.format
utilizza una stringa di formato che è descritto here
Questo funziona anche :
int i = 53;
String spaceHolder = "00000000";
String intString = String.valueOf(i);
String string = spaceHolder.substring(intString.lenght()).contract(intString);
Ma gli altri esempi sono molto più semplici.
Ancora un altro modo. ;)
int x = ...
String text = (""+(500000000 + x)).substring(1);
-1 => 99999999 (nove complemento)
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 per la creatività, anche se soluzione lenta :-). –
Tuttavia, non funziona con i negativi. – polygenelubricants
Potrebbe non essere lento come altre soluzioni e il comportamento non è definito per i negativi. Proprio come le altre soluzioni, ci sarà un non DDDDDDDD, dove D è una cifra, uscita per numeri negativi. –
Se avete bisogno di analizzare questa stringa supporto eo i18n possibilità di estendere l'oggetto
java.text.Format
. Usa le altre risposte per aiutarti a ottenere il formato.
Se avete solo bisogno di stamparlo, questa è una versione più breve:
System.out.printf("%08d\n", number);
Se Google Guava è un opzione:
String output = Strings.padStart("" + 100, 8, '0');
alternativa Apache Commons Lang:
String output = StringUtils.leftPad("" + 100, 8, "0");
- 1. Riempimento di zeri a sinistra in postgreSQL
- 2. Java aggiunge gli zeri iniziali a un numero
- 3. Stringa di riempimento a sinistra
- 4. Sinistra imbottitura interi (formato non decimale) con zeri in Java
- 5. gamma di riempimento con zeri
- 6. superamento di un numero con zeri a funzionare
- 7. Allineamento a sinistra con printf in Java
- 8. Aggiungere le schede a sinistra con FragmentPagerAdapter
- 9. Aggiungere zeri che porta a awk variabile
- 10. Come aggiungere gli zeri iniziali per il ciclo in shell?
- 11. Come aggiungere padding a sinistra su un UIButton creato a livello di codice?
- 12. Aggiungere gli zeri a un float dopo il punto decimale in Python
- 13. Come posso allineare tutti gli elementi a sinistra in JPanel?
- 14. Grafici Google HTML da sinistra a numero
- 15. in C# come utilizzare String.Format per un numero e pad a sinistra con gli zeri così la sua sempre 6 caratteri
- 16. In Python, come faccio a contare gli zeri finali in una stringa o in un intero?
- 17. Come aggiungere a DataOutputStream in Java?
- 18. numero Formato come larghezza fissa, con zeri
- 19. Come aggiungere gli elementi a un oggetto PanoramaItem in WP7
- 20. come aggiungere virgole a un numero in swift?
- 21. Formato numero in virgola mobile con zeri
- 22. Come aggiungere un numero di settimane a un NSDate?
- 23. Utilizzo di espressioni regolari per aggiungere gli zeri iniziali
- 24. int.Parse() con gli zeri iniziali
- 25. php, aggiungere zeri finali se il numero è intero
- 26. Come tamponare un numero con zeri durante la stampa?
- 27. Numero a stringa in un campo formula
- 28. Silverlight (3.0): Come aggiungere il riempimento cella a una griglia?
- 29. HTML5 Riempimento area di testo con stringa da destra a sinistra
- 30. In VHDL ..... come contare gli zeri iniziali del vettore?
'8 cifre' (invece di '8 numeri') sarebbe più corretto – leonbloy