1. Gambaran keseluruhan
Dalam tutorial ringkas ini, kita akan melihat bagaimana kita dapat membalikkan String di Java.
Kami akan mula melakukan pemprosesan ini menggunakan penyelesaian Java biasa. Seterusnya, kita akan melihat pilihan yang disediakan oleh perpustakaan pihak ketiga seperti Apache Commons.
Selanjutnya, kami akan menunjukkan cara membalikkan susunan kata dalam ayat .
2. Tradisional untuk Gelung
Kita tahu bahawa tali tidak boleh berubah di Jawa. Objek yang tidak berubah adalah objek yang keadaan dalamannya tetap berterusan setelah ia diciptakan sepenuhnya.
Oleh itu, kita tidak dapat membalikkan String dengan mengubahnya. Kita perlu membuat String lain untuk alasan ini.
Pertama, mari kita lihat contoh asas menggunakan gelung untuk . Kami akan mengulangi input String dari elemen terakhir hingga elemen pertama dan menggabungkan setiap watak 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 kita lihat, kita perlu berhati-hati di sudut sudut dan merawatnya secara berasingan.
Untuk lebih memahami contohnya, kita dapat membina ujian 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. Pembangun String
Java juga menawarkan beberapa mekanisme seperti StringBuilder dan StringBuffer yang membuat urutan watak yang dapat diubah . Objek-objek ini mempunyai kaedah terbalik () yang membantu kita mencapai hasil yang diinginkan.
Di sini, kita perlu membuat StringBuilder dari input String dan kemudian memanggil kaedah terbalik () :
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 perpustakaan Java yang popular dengan banyak kelas utiliti termasuk manipulasi tali.
Seperti biasa, untuk mula menggunakan Apache Commons, pertama-tama kita perlu menambahkan ketergantungan Maven:
org.apache.commons commons-lang3 3.9
The StringUtils kelas adalah apa yang kita perlukan di sini kerana ia menyediakan terbalik () kaedah yang sama untuk StringBuilder .
Satu kelebihan menggunakan perpustakaan ini adalah bahawa kaedah utiliti melaksanakan null operasi -Selamat . Oleh itu, kita tidak perlu menangani kes tepi secara berasingan.
Mari buat kaedah yang memenuhi tujuan kami dan menggunakan kelas StringUtils :
public String reverseUsingApacheCommons(String input) { return StringUtils.reverse(input); }
Sekarang, dengan melihat ketiga kaedah ini, kita pasti dapat mengatakan bahawa kaedah ketiga adalah kaedah termudah dan paling mudah ralat untuk membalikkan String .
5. Membalikkan Urutan Kata dalam Kalimat
Sekarang, anggaplah kita mempunyai ayat dengan perkataan yang dipisahkan dengan spasi dan tidak ada tanda baca. Kita perlu membalikkan susunan kata dalam ayat ini.
Kami dapat menyelesaikan masalah ini dalam dua langkah: membagi ayat dengan pembatas ruang dan kemudian menggabungkan kata-kata dalam urutan terbalik.
Pertama, kami akan menunjukkan pendekatan klasik. Kami akan menggunakan kaedah S tring.split () untuk memenuhi bahagian pertama masalah kami. Seterusnya, kita akan berulang melalui susunan yang dihasilkan dan menggabungkan kata-kata menggunakan StringBuilder . Sudah tentu, kita juga perlu menambah ruang 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, kita akan mempertimbangkan untuk menggunakan perpustakaan Apache Commons. Sekali lagi, ini membantu kita mencapai kod yang lebih mudah dibaca dan kurang ralat. Kita hanya perlu memanggil kaedah StringUtils.reverseDelimited () dengan ayat input dan pembatas sebagai argumen:
public String reverseTheOrderOfWordsUsingApacheCommons(String sentence) { return StringUtils.reverseDelimited(sentence, ' '); }
6. Kesimpulannya
Dalam tutorial ini, pertama-tama kita melihat pelbagai cara membalikkan String di Java. Kami melalui beberapa contoh menggunakan Java inti, serta menggunakan perpustakaan pihak ketiga yang popular seperti Apache Commons.
Seterusnya, kita telah melihat cara membalikkan susunan kata dalam satu ayat dalam dua langkah. Langkah-langkah ini juga dapat membantu dalam mencapai permutasi ayat yang lain.
Seperti biasa, semua contoh kod yang ditunjukkan dalam tutorial ini terdapat di GitHub.