Pemrosesan String dengan Apache Commons Lang 3

1. Ikhtisar

Pustaka Apache Commons Lang 3 menyediakan dukungan untuk manipulasi kelas inti API Java. Dukungan ini mencakup metode untuk menangani string, angka, tanggal, konkurensi, refleksi objek, dan lainnya.

Selain memberikan pengenalan umum ke pustaka, tutorial ini mendemonstrasikan metode kelas StringUtils yang digunakan untuk manipulasi instance String .

2. Ketergantungan Maven

Untuk menggunakan pustaka Commons Lang 3, cukup tarik dari repositori Maven pusat menggunakan dependensi berikut:

 org.apache.commons commons-lang3 3.5 

Anda dapat menemukan versi terbaru pustaka ini di sini.

3. StringUtils

Kelas StringUtils menyediakan metode untuk operasi aman- null pada string.

Banyak metode kelas ini memiliki metode terkait yang didefinisikan di kelas java.lang.String , yang bukan null -safe. Namun, bagian ini akan berfokus pada beberapa metode yang tidak memiliki padanan di kelas String .

4. Metode containsAny

The containsAny metode pemeriksaan jika diberikan String mengandung karakter dalam himpunan karakter. Kumpulan karakter ini dapat dikirimkan dalam bentuk String atau char varargs.

Fragmen kode berikut mendemonstrasikan penggunaan dua ragam kelebihan beban dari metode ini dengan verifikasi hasil:

String string = "baeldung.com"; boolean contained1 = StringUtils.containsAny(string, 'a', 'b', 'c'); boolean contained2 = StringUtils.containsAny(string, 'x', 'y', 'z'); boolean contained3 = StringUtils.containsAny(string, "abc"); boolean contained4 = StringUtils.containsAny(string, "xyz"); assertTrue(contained1); assertFalse(contained2); assertTrue(contained3); assertFalse(contained4);

5. Metode containsIgnoreCase

The containsIgnoreCase metode pemeriksaan jika diberikan String berisi lain String dalam hal cara tidak sensitif.

Fragmen kode berikut memverifikasi bahwa String "baeldung.com" terdiri dari "BAELDUNG" ketika huruf besar dan kecil diabaikan:

String string = "baeldung.com"; boolean contained = StringUtils.containsIgnoreCase(string, "BAELDUNG"); assertTrue(contained);

6. Metode countMatches

The counterMatches Metode penghitungan berapa kali karakter atau substring muncul dalam diberikan String.

Berikut ini adalah demonstrasi metode ini, mengkonfirmasikan bahwa 'w' muncul empat kali dan "com" muncul dua kali dalam String "selamat datang di www.baeldung.com" :

String string = "welcome to www.baeldung.com"; int charNum = StringUtils.countMatches(string, 'w'); int stringNum = StringUtils.countMatches(string, "com"); assertEquals(4, charNum); assertEquals(2, stringNum);

7. Metode Menambahkan dan Mempersiapkan

Metode appendIfMissing dan appendIfMissingIgnoreCase menambahkan sufiks ke akhir String yang diberikan jika belum diakhiri dengan sufiks yang diteruskan dengan cara masing-masing peka huruf besar / kecil dan tidak peka.

Demikian pula, metode prependIfMissing dan prependIfMissingIgnoreCase menambahkan prefiks ke awal String tertentu jika tidak dimulai dengan prefiks yang diteruskan.

Dalam contoh berikut, metode appendIfMissing dan prependIfMissing digunakan untuk menambahkan sufiks dan prefiks ke String “baeldung.com” tanpa imbuhan ini diulang:

String string = "baeldung.com"; String stringWithSuffix = StringUtils.appendIfMissing(string, ".com"); String stringWithPrefix = StringUtils.prependIfMissing(string, "www."); assertEquals("baeldung.com", stringWithSuffix); assertEquals("www.baeldung.com", stringWithPrefix);

8. Metode Pengubahan Kasus

Kelas String sudah mendefinisikan metode untuk mengubah semua karakter String menjadi huruf besar atau huruf kecil. Subbagian ini hanya menggambarkan penggunaan metode yang mengubah kasus String dengan cara lain, termasuk swapCase , capitalize , dan uncapitalize .

The swapCase metode swap kasus String, mengubah huruf besar menjadi huruf kecil dan huruf kecil ke huruf besar:

String originalString = "baeldung.COM"; String swappedString = StringUtils.swapCase(originalString); assertEquals("BAELDUNG.com", swappedString);

The memanfaatkan metode bertobat karakter pertama dari yang diberikan String ke huruf besar, meninggalkan semua karakter yang tersisa tidak berubah:

String originalString = "baeldung"; String capitalizedString = StringUtils.capitalize(originalString); assertEquals("Baeldung", capitalizedString);

The uncapitalize metode mengubah karakter pertama dari yang diberikan String ke huruf kecil, meninggalkan semua karakter yang tersisa tidak berubah:

String originalString = "Baeldung"; String uncapitalizedString = StringUtils.uncapitalize(originalString); assertEquals("baeldung", uncapitalizedString);

9. Metode Pembalikan

Kelas StringUtils mendefinisikan dua metode untuk membalikkan string: reverse dan reverseDelimited . The terbalik Metode menata kembali semua karakter dari String dalam urutan yang berlawanan, sedangkan reverseDelimited kelompok metode menata ulang karakter, dipisahkan oleh pembatas yang ditentukan.

Fragmen kode berikut membalikkan string "baeldung" dan memvalidasi hasilnya:

String originalString = "baeldung"; String reversedString = StringUtils.reverse(originalString); assertEquals("gnudleab", reversedString);

Dengan metode reverseDelimited , karakter dibalik dalam kelompok, bukan secara individual:

String originalString = "www.baeldung.com"; String reversedString = StringUtils.reverseDelimited(originalString, '.'); assertEquals("com.baeldung.www", reversedString);

10. rotate () Method

Metode rotate () secara melingkar menggeser karakter dari String ke sejumlah posisi. Fragmen kode di bawah ini memindahkan semua karakter dari String "baeldung" empat posisi ke kanan dan memverifikasi hasilnya:

String originalString = "baeldung"; String rotatedString = StringUtils.rotate(originalString, 4); assertEquals("dungbael", rotatedString);

11. Metode Perbedaan

The perbedaan metode membandingkan dua string, mengembalikan sisa kedua String, mulai dari posisi di mana hal ini berbeda dari yang pertama. Fragmen kode berikut membandingkan dua String: "Tutorial Baeldung" dan "Kursus Baeldung" di kedua arah dan memvalidasi hasilnya:

String tutorials = "Baeldung Tutorials"; String courses = "Baeldung Courses"; String diff1 = StringUtils.difference(tutorials, courses); String diff2 = StringUtils.difference(courses, tutorials); assertEquals("Courses", diff1); assertEquals("Tutorials", diff2);

12. Kesimpulan

Tutorial ini memperkenalkan pemrosesan String di Apache Commons Lang 3 dan membahas API utama yang dapat kita gunakan dari kelas pustaka StringUtils .

Seperti biasa, penerapan semua contoh dan cuplikan kode yang diberikan di atas dapat ditemukan di proyek GitHub.