Cara Membalik String di Java

1. Ikhtisar

Dalam tutorial singkat ini, kita akan melihat bagaimana kita bisa membalikkan String di Java.

Kami akan mulai melakukan pemrosesan ini menggunakan solusi Java biasa. Selanjutnya, kita akan melihat opsi yang disediakan oleh perpustakaan pihak ketiga seperti Apache Commons.

Selanjutnya, kami akan mendemonstrasikan cara membalik urutan kata dalam kalimat .

2. Tradisional untuk Loop

Kami tahu bahwa string tidak dapat diubah di Jawa. Objek yang tidak dapat diubah adalah objek yang keadaan internalnya tetap konstan setelah seluruhnya dibuat.

Oleh karena itu, kami tidak dapat membalikkan String dengan memodifikasinya. Kami perlu membuat String lain untuk alasan ini.

Pertama, mari kita lihat contoh dasar menggunakan for loop. Kita akan mengulang input String dari elemen terakhir ke elemen pertama dan menggabungkan setiap karakter menjadi String baru :

public String reverse(String input) { if (input == null) { return input; } String output = ""; for (int i = input.length() - 1; i >= 0; i--) { output = output + input.charAt(i); } return output; }

Seperti yang bisa kita lihat, kita perlu berhati-hati pada kasus sudut dan memperlakukannya secara terpisah.

Untuk lebih memahami contoh ini, kita dapat membuat pengujian unit:

@Test public void whenReverseIsCalled_ThenCorrectStringIsReturned() { String reversed = ReverseStringExamples.reverse("cat"); String reversedNull = ReverseStringExamples.reverse(null); String reversedEmpty = ReverseStringExamples.reverse(StringUtils.EMPTY); assertEquals("tac", reversed); assertEquals(null, reversedNull); assertEquals(StringUtils.EMPTY, reversedEmpty); }

3. Sebuah StringBuilder

Java juga menawarkan beberapa mekanisme seperti StringBuilder dan StringBuffer yang membuat urutan karakter yang bisa berubah . Objek-objek ini memiliki metode reverse () yang membantu kita mencapai hasil yang diinginkan.

Di sini, kita perlu membuat StringBuilder dari input String dan kemudian memanggil metode reverse () :

public String reverseUsingStringBuilder(String input) { if (input == null) { return null; } StringBuilder output = new StringBuilder(input).reverse(); return output.toString(); }

4. Apache Commons

Apache Commons adalah pustaka Java populer dengan banyak kelas utilitas termasuk manipulasi string.

Seperti biasa, untuk mulai menggunakan Apache Commons, pertama-tama kita perlu menambahkan dependensi Maven:

 org.apache.commons commons-lang3 3.9 

Kelas StringUtils adalah yang kita butuhkan di sini karena menyediakan metode reverse () yang mirip dengan StringBuilder .

Satu keuntungan menggunakan pustaka ini adalah metode utilitasnya menjalankan operasi aman- null . Jadi, kami tidak harus menangani kasus edge secara terpisah.

Mari buat metode yang memenuhi tujuan kita dan menggunakan kelas StringUtils :

public String reverseUsingApacheCommons(String input) { return StringUtils.reverse(input); }

Sekarang, melihat ketiga metode ini, kita pasti dapat mengatakan bahwa yang ketiga adalah cara paling sederhana dan paling tidak rawan kesalahan untuk membalikkan String .

5. Membalik Urutan Kata dalam Kalimat

Sekarang, mari kita asumsikan kita memiliki kalimat dengan kata-kata yang dipisahkan oleh spasi dan tanpa tanda baca. Kita perlu membalik urutan kata dalam kalimat ini.

Kita dapat menyelesaikan masalah ini dalam dua langkah: memisahkan kalimat dengan pembatas spasi dan kemudian menggabungkan kata-kata dalam urutan terbalik.

Pertama, kami akan menunjukkan pendekatan klasik. Kita akan menggunakan metode S tring.split () untuk memenuhi bagian pertama dari masalah kita. Selanjutnya, kita akan mengulang kembali array yang dihasilkan dan menggabungkan kata-kata menggunakan StringBuilder . Tentu saja, kita juga perlu menambahkan spasi di antara kata-kata ini:

public String reverseTheOrderOfWords(String sentence) { if (sentence == null) { return null; } StringBuilder output = new StringBuilder(); String[] words = sentence.split(" "); for (int i = words.length - 1; i >= 0; i--) { output.append(words[i]); output.append(" "); } return output.toString().trim(); }

Kedua, kami akan mempertimbangkan untuk menggunakan pustaka Apache Commons. Sekali lagi, ini membantu kami mencapai kode yang lebih mudah dibaca dan tidak terlalu rawan kesalahan. Kita hanya perlu memanggil metode StringUtils.reverseDelimited () dengan kalimat masukan dan pembatas sebagai argumen:

public String reverseTheOrderOfWordsUsingApacheCommons(String sentence) { return StringUtils.reverseDelimited(sentence, ' '); }

6. Kesimpulan

Dalam tutorial ini, pertama kali kita melihat berbagai cara membalikkan String di Java. Kami mempelajari beberapa contoh menggunakan inti Java, serta menggunakan pustaka pihak ketiga yang populer seperti Apache Commons.

Selanjutnya, kita telah melihat cara membalik urutan kata dalam kalimat dalam dua langkah. Langkah-langkah ini juga dapat membantu dalam mencapai permutasi kalimat lainnya.

Seperti biasa, semua contoh kode yang ditampilkan dalam tutorial ini tersedia di GitHub.