Pad String dengan Nol atau Spasi di Java

1. Ikhtisar

Dalam tutorial singkat ini, kita akan melihat cara memasukkan String di Java. Kita akan fokus terutama pada pad kiri, yang berarti kita akan menambahkan spasi atau nol terdepan sampai mencapai panjang yang diinginkan.

Pendekatan untuk string empuk yang tepat sangat mirip, jadi kami hanya akan menunjukkan perbedaannya.

2. Padatkan String Menggunakan Metode Kustom

Kelas String di Java tidak menyediakan metode yang nyaman untuk padding, jadi mari buat beberapa metode sendiri. Namun, pertama-tama, mari kita tentukan beberapa ekspektasi:

assertEquals(" 123456", padLeftZeros("123456", 10)); assertEquals("0000123456", padLeftZeros("123456", 10));

2.1. Menggunakan StringBuilder

Kami dapat mencapai ini dengan StringBuilder dan beberapa logika prosedural:

public String padLeftZeros(String inputString, int length) { if (inputString.length() >= length) { return inputString; } StringBuilder sb = new StringBuilder(); while (sb.length() < length - inputString.length()) { sb.append('0'); } sb.append(inputString); return sb.toString(); }

Kita dapat melihat di sini bahwa jika panjang teks asli sama dengan atau lebih besar dari panjang yang diinginkan, kita mengembalikan versi yang tidak berubah. Jika tidak, kami membuat String baru , dimulai dengan spasi, dan menambahkan yang asli.

Tentu saja, jika kita ingin pad dengan karakter yang berbeda kita bisa menggunakannya saja, bukan 0 .

Demikian juga, jika kita ingin pad kanan, kita hanya perlu melakukan StringBuilder baru (inputString) sebagai gantinya dan kemudian menambahkan spasi di bagian akhir.

2.2. Menggunakan substring

Cara lain untuk melakukan padding kiri adalah untuk menciptakan sebuah String dengan panjang yang diinginkan yang hanya berisi karakter pad dan kemudian menggunakan substring () metode :

StringBuilder sb = new StringBuilder(); for (int i = 0; i < length; i++) { sb.append(' '); } return sb.substring(inputString.length()) + inputString;

2.3. Menggunakan String.format

Dan, akhirnya, sejak Java 5, kita bisa menggunakan String .format () :

return String.format("%1$" + length + "s", inputString).replace(' ', '0');

Kita harus mencatat bahwa secara default operasi padding akan dilakukan menggunakan spasi. Itulah alasan mengapa kita perlu menggunakan metode replace () jika kita ingin mengisi angka nol atau karakter lainnya.

Untuk pad kanan, kita hanya perlu menggunakan flag yang berbeda: % 1 $ -

3. Pad String Menggunakan Perpustakaan

Dan, ada pustaka eksternal yang sudah menawarkan fungsionalitas bantalan.

3.1. Apache Commons Lang

Apache Commons Lang menyediakan paket kelas utilitas Java. Salah satu yang paling populer adalah StringUtils .

Untuk menggunakannya, kita perlu memasukkannya ke dalam proyek kita dengan menambahkan ketergantungannya ke file pom.xml kita :

 org.apache.commons commons-lang3 3.8.1 

Dan kemudian kami meneruskan inputString dan panjangnya , seperti metode yang kami buat. Kita juga bisa melewatkan karakter padding:

assertEquals(" 123456", StringUtils.leftPad("123456", 10)); assertEquals("0000123456", StringUtils.leftPad("123456", 10, "0"));

Sekali lagi, String akan diisi dengan spasi secara default atau kita perlu secara eksplisit mengatur karakter pad lainnya.

Ada juga metode rightPad () yang sesuai.

Untuk menjelajahi lebih banyak fitur Apache Commons Lang 3, Anda dapat melihat tutorial pengantar kami. Jika Anda ingin melihat cara lain dari manipulasi String menggunakan kelas StringUtils , silakan merujuk ke artikel ini .

3.2. Google Guava

Library lain yang bisa kita gunakan adalah Google Guava. Tentu saja, pertama kita perlu menambahkannya ke proyek dengan menambahkan ketergantungannya:

 com.google.guava guava 27.0-jre 

Dan kemudian gunakan kelas Strings :

assertEquals(" 123456", Strings.padStart("123456", 10, ' ')); assertEquals("0000123456", Strings.padStart("123456", 10, '0'));

Tidak ada karakter pad default dalam metode ini, jadi kita perlu meneruskannya setiap saat.

Untuk pad kanan, kita bisa menggunakan metode padEnd () .

Pustaka Guava menawarkan lebih banyak fitur dan kami telah membahas banyak di antaranya. Anda dapat melihat di sini untuk artikel terkait Jambu Biji .

4. Kesimpulan

Dalam artikel singkat ini, kami mengilustrasikan bagaimana kami dapat memasukkan String di Java. Kami menyajikan contoh menggunakan implementasi kami sendiri atau perpustakaan yang ada.

Seperti biasa, kode sumber lengkap dapat ditemukan di GitHub.