Saya bertanya-tanya apakah mungkin, menggunakan metode String.format di Jawa, untuk memberikan bilangan bulat nol sebelumnya?
Sebagai contoh:
1 akan menjadi 001
2 akan menjadi 002
...
11 akan menjadi 011
12 akan menjadi 012
...
526 akan tetap sebagai 526
... dll
Saat ini saya sudah mencoba kode berikut:
String imageName = "_%3d" + "_%s";
for( int i = 0; i < 1000; i++ ){
System.out.println( String.format( imageName, i, "foo" ) );
}
Sayangnya, ini mendahului angka dengan 3 ruang kosong. Apakah mungkin untuk mendahului angka dengan nol saja?
java
string-formatting
number-formatting
Kepala saya sakit
sumber
sumber
Jawaban:
Gunakan
%03d
dalam specifier format untuk integer. The0
berarti bahwa nomor akan menjadi nol-penuh jika kurang dari tiga (dalam kasus ini) digit.Lihat
Formatter
dokumen untuk pengubah lainnya.sumber
Lihat
java.util.Formatter
untuk informasi lebih lanjut.sumber
Jika Anda menggunakan perpustakaan pihak ketiga yang disebut apache commons-lang, solusi berikut ini bisa berguna:
Gunakan
StringUtils
kelas apache commons-lang :Seperti
StringUtils.leftPad()
lebih cepat dariString.format()
sumber