Saya perlu menghasilkan string dengan panjang tetap untuk menghasilkan file berbasis posisi karakter. Karakter yang hilang harus diisi dengan karakter spasi.
Sebagai contoh, kolom CITY memiliki panjang tetap 15 karakter. Untuk masukan "Chicago" dan "Rio de Janeiro", keluarannya adalah
"Chicago" " Rio de Janeiro".
java
string
formatting
Rafael Borja
sumber
sumber
Jawaban:
Sejak Java 1.5 kita dapat menggunakan metode java.lang.String.format (String, Object ...) dan menggunakan format seperti printf.
String format
"%1$15s"
melakukan pekerjaan itu. Where1$
menunjukkan indeks argumen,s
menunjukkan bahwa argumen adalah String dan15
mewakili lebar minimal String. Menempatkan itu semua bersama-sama:"%1$15s"
.Untuk metode umum kami memiliki:
Mungkin seseorang dapat menyarankan string format lain untuk mengisi ruang kosong dengan karakter tertentu?
sumber
Maybe someone can suggest another format string to fill the empty spaces with an specific character?
- lihat jawaban yang saya berikan.1$
mewakili indeks argumen dan15
lebarnyaMemanfaatkan
String.format
padding dengan spasi dan ganti dengan karakter yang diinginkan.Cetakan
000Apple
.Perbarui versi yang lebih berkinerja (karena tidak bergantung
String.format
), yang tidak memiliki masalah dengan spasi (terima kasih kepada Rafael Borja untuk petunjuknya).Cetakan
00New York
.Tetapi pemeriksaan perlu ditambahkan untuk mencegah upaya membuat array karakter dengan panjang negatif.
sumber
Kode ini akan memiliki jumlah karakter yang tepat; diisi dengan spasi atau terpotong di sisi kanan:
sumber
Anda juga dapat menulis metode sederhana seperti di bawah ini
sumber
Untuk bantalan yang tepat yang Anda butuhkan
String.format("%0$-15s", str)
Yaitu
-
tanda akan pad "kanan" dan tidak ada-
tanda akan pad "kiri"lihat contoh saya di sini
http://pastebin.com/w6Z5QhnJ
masukan harus berupa string dan angka
contoh masukan: Google 1
sumber
Jauh lebih baik dari Jambu imo. Tidak pernah melihat satu pun proyek Java perusahaan yang menggunakan Guava tetapi Apache String Utils sangat umum.
sumber
The Jambu Perpustakaan memiliki Strings.padStart yang tidak persis apa yang Anda inginkan, bersama dengan banyak utilitas yang berguna lainnya.
sumber
Inilah trik yang rapi:
sumber
Berikut adalah kode dengan kasus pengujian;):
Saya suka TDD;)
sumber
Ringkasan bagus di sini
sumber
Kode ini bekerja dengan baik.
Selamat Coding !!
sumber
sumber
Fungsi sederhana ini bekerja untuk saya:
Doa:
sumber