Pemprosesan Rentetan dengan Apache Commons Lang 3

1. Gambaran keseluruhan

Perpustakaan Apache Commons Lang 3 memberikan sokongan untuk manipulasi kelas teras API Java. Sokongan ini merangkumi kaedah untuk menangani rentetan, nombor, tarikh, serentak, pantulan objek dan banyak lagi.

Selain memberikan pengenalan umum ke perpustakaan, tutorial ini menunjukkan kaedah kelas StringUtils yang digunakan untuk manipulasi kejadian String .

2. Ketergantungan Maven

Untuk menggunakan perpustakaan Commons Lang 3, tarik sahaja dari repositori pusat Maven menggunakan pergantungan berikut:

 org.apache.commons commons-lang3 3.5 

Anda boleh mendapatkan versi terbaru perpustakaan ini di sini.

3. StringUtils

The StringUtils kelas menyediakan kaedah untuk null operasi -Selamat pada tali.

Banyak kaedah kelas ini telah sama yang ditakrifkan dalam kelas java.lang.String , yang tidak null -Selamat. Walau bagaimanapun, bahagian ini akan memfokuskan kepada beberapa kaedah yang tidak setara dalam kelas String .

4. Kaedah mengandungi

The containsAny cek kaedah jika diberi String mengandungi apa-apa watak dalam set yang diberikan watak-watak. Kumpulan watak ini dapat disampaikan dalam bentuk String atau char varargs.

Fragmen kod berikut menunjukkan penggunaan dua rasa berlebihan kaedah ini dengan pengesahan 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. Kaedah mengandungiIgnoreCase

The containsIgnoreCase cek kaedah jika diberi String mengandungi lain String dengan cara tidak sensitif kes.

Fragmen kod berikut mengesahkan bahawa String "baeldung.com" terdiri dari "BAELDUNG" apabila huruf besar dan kecil diabaikan:

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

6. Kaedah CountMatches

The counterMatches kaedah kiraan berapa kali watak atau subrentetan muncul dalam tertentu String.

Berikut ini adalah demonstrasi kaedah ini, mengesahkan bahawa 'w' muncul empat kali dan "com" melakukan 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. Kaedah Menambah dan Menyiapkan

Kaedah appendIfMissing dan appendIfMissingIgnoreCase melampirkan akhiran pada akhir String yang diberikan jika tidak berakhir dengan mana-mana akhiran yang dilampirkan dengan cara sensitif dan tidak sensitif.

Begitu juga, kaedah prependIfMissing dan prependIfMissingIgnoreCase menambah awalan ke permulaan String tertentu jika tidak bermula dengan mana-mana awalan yang dilewatkan.

Dalam contoh berikut, kaedah appendIfMissing dan prependIfMissing digunakan untuk menambahkan akhiran dan awalan ke String "baeldung.com" tanpa afiks 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. Kaedah Penukaran Kes

The String kelas telah mentakrifkan kaedah untuk menukar semua watak-watak yang String kepada huruf besar atau huruf kecil. Subseksyen ini hanya menggambarkan penggunaan kaedah mengubah kes String dengan cara lain, termasuk swapCase , memanfaatkan dan tidak memanfaatkan modal .

The swapCase kaedah swap hal String, menukar huruf besar kepada huruf kecil dan huruf kecil kepada huruf besar:

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

Yang mengambil kesempatan memeluk kaedah watak pertama yang diberikan String kepada huruf besar, meninggalkan semua aksara yang tinggal tidak berubah:

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

The uncapitalize kaedah menukarkan watak pertama yang diberikan String kepada huruf kecil, meninggalkan semua aksara yang tinggal tidak berubah:

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

9. Kaedah Pembalikan

The StringUtils kelas mentakrifkan dua kaedah untuk menterbalikkan tali: terbalik dan reverseDelimited . The terbalik kaedah menyusunnya semua watak-watak yang String untuk sebaliknya, manakala reverseDelimited kumpulan kaedah reorders aksara, dipisahkan oleh pembatas yang ditetapkan.

Fragmen kod berikut membalikkan rentetan "baeldung" dan mengesahkan hasilnya:

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

Dengan kaedah reverseDelimited , watak dibalikkan dalam kumpulan dan bukannya secara individu:

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

10. putar () Menghubungi

Kaedah putar () memutar watak String dengan sebilangan kedudukan. Fragmen kod di bawah menggerakkan semua watak String "baeldung" empat posisi ke kanan dan mengesahkan hasilnya:

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

11. Kaedah Perbezaan

The perbezaan kaedah membandingkan dua tali, kembali baki kedua String, bermula dari kedudukan di mana ia adalah berbeza dari yang pertama. Fragmen kod berikut membandingkan dua String: "Tutorial Baeldung" dan "Kursus Baeldung" di kedua arah dan mengesahkan 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. Kesimpulannya

Tutorial ini memperkenalkan pemprosesan String di Apache Commons Lang 3 dan membahas API utama yang dapat kita gunakan di luar kelas perpustakaan StringUtils .

Seperti biasa, pelaksanaan semua contoh dan potongan kod yang diberikan di atas boleh didapati dalam projek GitHub.