CodeGym /Java Blog /Acak /Berbagai Cara Membalikkan String di Java
John Squirrels
Level 41
San Francisco

Berbagai Cara Membalikkan String di Java

Dipublikasikan di grup Acak
String dalam java juga bisa dikatakan sebagai array karakter. String di java digunakan untuk menyimpan teks/karakter. Dalam bahasa pemrograman java, string dianggap sebagai objek. Di Java, string adalah objek yang telah ditentukan sebelumnya yaitu kelas bernama String. Semua variabel string adalah turunan dari kelas String di java. Oleh karena itu kita dapat memahami bahwa string dalam java bukanlah tipe primitif seperti int atau char dalam bahasa pemrograman lain. Pada artikel ini, kita akan membaca cara membalikkan string di java, prasyaratnya adalah Anda harus mengetahui cara membuat string di java , dan konsep dasar metode string bawaan, dan cara melakukan operasi dengan bantuan loop.

Ruang lingkup artikel

- Pada artikel ini kita akan membaca tentang berbagai cara membalikkan string di java. - Kita juga akan melihat beberapa metode bawaan yang dapat digunakan untuk membalikkan string di java. - Kita juga akan membaca tentang kompleksitas waktu dan ruang dari setiap metode kebalikan di java. - Ada beberapa cara untuk membalikkan string di Java, masing-masing dengan kelebihan dan kekurangannya. Pada artikel ini, kita akan mempelajari beberapa metode yang paling umum digunakan untuk membalikkan string di Java.

Perkenalan

String adalah objek yang tidak dapat diubah di java, string hanyalah rangkaian karakter di java. String baris tunggal di java didefinisikan dengan tanda kutip tunggal sedangkan string beberapa baris di java didefinisikan dengan tanda kutip tiga, java memiliki beberapa metode string yang tersedia, tetapi hari ini di artikel ini kita akan membaca tentang berbagai cara cara membalikkan string di java. Bahasa pemrograman Java adalah salah satu bahasa pemrograman yang paling banyak digunakan di dunia, dan dikenal karena kesederhanaan dan kemudahan penggunaannya. Salah satu operasi paling umum yang dilakukan pemrogram pada string adalah membalikkannya. Pada artikel ini, kita akan membahas berbagai cara untuk membalikkan string di Java. Pertama, mari kita baca tentang cara paling umum menggunakan perulangan for di java:

Membalikkan string di java menggunakan for loop:

Teknik ini adalah salah satu cara paling sederhana untuk membalikkan string di Java dengan menggunakan for loop. Kita dapat mengulangi karakter string dari akhir ke awal, dan menambahkannya ke variabel string baru. Berikut adalah contoh cara membalikkan string menggunakan perulangan for :
//in the above code we have reversed the string using a for loop in java
public class reverseofthestring {
  public static void main(String[] args) {

    String s1 = "java is fun";
      // we are creating the second string to store the reversed string and print it while iterating the for loop
    String s2 = "";

    for(int i = s1.length()-1; i>=0; i--)
    {
        // in the above line we have stored the reversed string by iterating the for loop from the last index and stored the value in the second string created s2.
      s2 = s2 + s1.charAt(i);
    }

    System.out.print("The reversed string of the '"+s1+"' is: " );
    System.out.println(s2);
  }
}
Keluaran
The reversed string of the s1 is:nuf si avaj
Dalam kode di atas, pertama-tama kita mengambil input string bernama s1 dan membuat string kosong s2 dan kemudian mengulangi loop for dari indeks terakhir dan kemudian kita menyimpan nilai setiap karakter dalam string itu. Jalankan kode di atas di editor Anda untuk penjelasan yang lebih baik dan jelas. Kompleksitas waktu dari kode di atas adalah O(N), dan karena kita telah mengulangi semua n elemen, kompleksitas ruang dari kode di atas adalah O(N). Sekarang mari kita baca tentang proses selanjutnya yaitu membalikkan string menggunakan pembuat string, jadi sekarang mari kita membacanya secara detail:

Membalikkan string menggunakan kelas pembuat string

Kita juga bisa membalikkan string di Java dengan menggunakan kelas StringBuilder. Kelas StringBuilder menyediakan metode reverse() yang dapat digunakan untuk membalikkan string. Metode reverse() dari kelas Java StringBuilder digunakan untuk mengganti urutan karakter ini dengan urutan kebalikannya. Kelas StringBuilder di java tidak memiliki metode toCharArray(), sedangkan kelas String memiliki metode toCharArray(). Sekarang mari kita pahami dengan bantuan sebuah contoh:
public class reverseusingbuilder {
    public static void main(String[] args) {
        StringBuilder s1 = new StringBuilder("abc");
        System.out.println("The original string1 is  = " + s1);
        StringBuilder s2 = new StringBuilder("cab");
        System.out.println("The original string2 is = " + s2);
         StringBuilder s3 = new StringBuilder("wer");
        System. out.println("The original string3 is = " + s3);
        // reversing of stringbuilder
        System.out.println("The reverse of the string is reverse1 = " + s1.reverse());
        System.out.println("The reverse of the string2 is reverse2 = " + s2.reverse());
         System.out.println("The reverse of the string3 is reverse2 = " + s3.reverse());
    }
}
Keluaran
The original string1 is  = abc
The original string2 is  =cab
The original string3 is  =wer
The reversed string1 is  = cba
The reversed string2 is  = bac
The reversed string3 is  =rew
Dalam metode ini, kita dapat melihat bahwa dengan menggunakan kelas pembuat string bawaan, kita telah membalikkan string tersebut. Metode ini sangat efisien karena hanya membutuhkan satu kali melewati string. Namun, hal ini memerlukan pembuatan objek StringBuilder baru, yang dapat menambah beberapa overhead. Metode ini relatif sederhana dan mudah dipahami, namun mungkin kurang efisien dibandingkan metode lainnya, karena memerlukan beberapa kali melewati string dan pembuatan string baru untuk setiap karakter. Jalankan kode di atas di editor Anda untuk penjelasan yang lebih baik dan jelas. Sekarang mari kita lihat cara lain untuk membalikkan string menggunakan teknik rekursi:

Balikkan string menggunakan rekursi

Rekursi adalah teknik di mana suatu fungsi memanggil dirinya sendiri. Kita dapat menggunakan rekursi untuk membalikkan string dengan memecahnya menjadi substring yang lebih kecil. Rekursi di java adalah proses dimana suatu metode memanggil dirinya sendiri secara terus menerus. Untuk membalikkan string di java menggunakan rekursi terlebih dahulu kita harus menghapus karakter pertama dari string kemudian menambahkan karakter tersebut di akhir string dan kemudian kita harus mengulangi langkah di atas hingga string input menjadi kosong. Sekarang mari kita pahami ini dengan bantuan sebuah contoh:
public class reverse string
{
//in this line we are writing the recursive function to reverse a string
public String reverse string(String s1)
{
//first we will check if the string is empty or not
if(s1.isEmpty())
{
System. out.println("String is empty.")
//if the above condition is true then it returns the same string as if the string is empty itself then we cannot reverse the string
return s1;
}
else
{
return reverseString(s1.substring(1))+s1.charAt(0);
}
}
public static void main(String[] args)
{
reversestring q1 = new reversestring();
String res1 = q1.reverseString("JAVA IS FUN");
String res2 = q1.reverseString("STRINGS OBJECTS JAVA");
String res3 = q1.reverseString("IMMUTABLE CLASS OBJECTS");
System.out.println(res1);
System.out.println(res2);
System.out.println(res3);
}
}
Keluaran
NUF SI AVAJ
AVAJ STCEJBO SGNIRTS
STCEJBO SSALC ELBATUMMI
Oleh karena itu kita dapat melihat bahwa pada gambar di atas bahwa dengan menggunakan rekursi kita telah membalik string yang telah kita periksa terlebih dahulu apakah string tersebut kosong atau tidak, jika string akan kosong maka tidak akan ada karakter yang dapat dibalik. Metode ini bisa lebih efisien daripada metode for-loop, karena hanya memerlukan satu kali melewati string. Namun, hal ini juga bisa menjadi lebih kompleks dan sulit untuk dipahami, karena melibatkan penggunaan rekursi . Jalankan kode di atas di editor Anda untuk penjelasan yang lebih baik dan jelas. Mari kita lihat contoh lain bagaimana membalikkan string menggunakan rekursi di java:
public static String reverseusingrecursion(String s1) {
    if (s1.length() == 1) {
        return s1;
    }
    //We have applied recursion in this line
    return s1.charAt(s1.length() - 1) + reverseUsingRecursion(s1.substring(0, s1.length() - 1));
}
Sekarang mari kita baca tentang cara lain untuk membalikkan string di java yaitu menggunakan array:

Membalikkan string di java menggunakan array

Kita juga dapat membalikkan string dengan mengubahnya menjadi array karakter, mengubah array, dan kemudian mengubahnya kembali menjadi string. Pertama, kita harus membuat array karakter kosong dengan ukuran yang sama dengan string yang diberikan, kemudian kita harus mengisi array karakter ke belakang dengan karakter dari string yang diberikan, dan terakhir kita harus mengubah array karakter menjadi string menggunakan metode penyalinan dan mengembalikannya. Sekarang mari kita pahami ini dengan bantuan sebuah contoh:
public class Main
{
    // In this Method of conversion we have to reverse a string in Java using a character array
    public static String reverse(String s1)
    {
        // we have to check if the string is empty or not and return if the string is null or empty
        if (s1 == null || s1.equals("")) {
            return s1;
        }
 // if it is equal to empty then we will simply print the string and break it.
        // else we will find the string length
        int len = str.length();

        // and then we have to create a character array of the same size as that of the string to store the value after reversing
        char[] new_arr = new char[n];

        // and by iterating the loop backward we have to fill the character array backward with characters in the string
        for (int i = 0; i < len; i++) {
            new_arr[len - i - 1] = str.charAt(i);
        }

        // and in the final step after reversing we have to convert the character array to string and return it
        to return String.copy value of(new_arr);
    }

    public static void main(String[] args)
    {
        // taking a string input for reverse
        String s1 = "JAVA IS FUN";

        // In this line we are calling the reverse function and reversing the string
        str = reverse(str);

        System.out.println("The reversed string is " + s1);
    }
}
Keluaran
NUF SI AVA
Dalam metode ini kita harus membalikkan string menjadi array karakter yang kita kenal jadi pertama-tama kita akan memeriksa apakah string tersebut kosong atau tidak dan mengembalikan apakah string tersebut null atau kosong jika sama dengan kosong maka kita cukup mencetak string tersebut dan istirahat lagi kita akan menemukan panjang string dan kemudian kita harus membuat array karakter dengan ukuran yang sama dengan string untuk menyimpan nilai setelah membalikkan dan dengan mengulangi loop ke belakang kita harus mengisi array karakter ke belakang dengan karakter dalam string dan pada langkah terakhir setelah membalikkan kita harus mengubah array karakter menjadi string dan mengembalikannya. Jalankan kode di atas di editor Anda untuk penjelasan yang lebih baik dan jelas. Sekarang mari kita baca tentang langkah selanjutnya kita juga bisa membalikkan string di java menggunakan Stream API. Jadi sekarang mari kita membacanya secara detail dengan bantuan beberapa contoh:

Membalikkan string di java menggunakan Stream API:

Java 8 memperkenalkan Stream API yang dapat digunakan untuk melakukan operasi gaya fungsional pada koleksi. Kita dapat menggunakan Stream API untuk membalikkan string dengan mengonversinya menjadi aliran karakter, membalikkan aliran tersebut, lalu mengonversinya kembali menjadi string. Kita dapat membalikkan string di java menggunakan berbagai aliran dan kolektor, pertama kita harus memasukkan string dan kemudian menggunakan Peta pada seluruh String ke dalam objek StringBuilder dan pada saat yang sama membalikkannya menggunakan metode reverse() dari kelas StringBuilder dan lalu Terakhir, kumpulkan String yang dibalik menggunakan Stream. metode Collect() dan Kolektor. join() metode kami akan mencetak String asli/terbalik beserta panjangnya. Sekarang mari kita pahami ini dengan bantuan sebuah contoh:
public static String reverseUsingStream(String str) {
    return str. chars()
              .mapToObj(c -> (char) c)
              .collect(StringBuilder::new, StringBuilder::append, StringBuilder::append)
              .reverse()
              .toString();
}
Dalam contoh ini, kami telah membalik string di java menggunakan aliran dan kolektor java. Jalankan kode di atas di editor Anda untuk penjelasan yang lebih baik dan jelas. Sekarang mari kita lihat bagaimana kita dapat membalikkan string menggunakan tumpukan. Sekarang mari kita membacanya secara detail dengan bantuan sebuah contoh:

Balikkan string menggunakan tumpukan

Ada cara lain untuk membalikkan string di Java yaitu dengan menggunakan stack. Idenya adalah untuk mendorong setiap karakter dari string input ke tumpukan dan kemudian mengeluarkan karakter dari tumpukan untuk mendapatkan string terbalik. Sekarang mari kita baca lebih lanjut secara detail dengan bantuan sebuah contoh:
public static String reverse string(String input) {
    Stack<character> stack = new Stack<>();
    for (int i = 0; i < input.length(); i++) {
        stack.push(input.charAt(i));
    }
    StringBuilder sb = new StringBuilder();
    while (!stack.isEmpty()) {
        sb.append(stack.pop());
    }
    return sb.toString();
}

</character>
Dalam contoh di atas, pertama-tama kita membuat tumpukan kosong lalu membalik string dan memasukkan elemen ke dalam tumpukan. Cara ini sederhana, mudah dimengerti, dan efisien. Jalankan kode di atas di editor Anda untuk penjelasan yang lebih baik dan jelas.

Kesimpulan

Metode pertama adalah dengan menggunakan kelas StringBuilder, yang memiliki metode reverse() bawaan yang mengembalikan string baru yang merupakan kebalikan dari string asli. Metode kedua adalah menggunakan perulangan for, di mana kita mengonversi string asli menjadi array char dan melakukan iterasi melalui array dalam urutan terbalik, menugaskan karakter yang sesuai ke array char baru, dan terakhir membuat string baru menggunakan array char tersebut. Metode ketiga adalah menggunakan rekursi, di mana kita memanggil fungsi rekursif dan menyelesaikan masalah dengan menggabungkan karakter pertama dari string dengan substring terbalik dari karakter yang tersisa. Metode keempat adalah dengan menggunakan array untuk membalikkan string di java. Pada metode kelima, kami menggunakan stream API dan java collector untuk membalikkan string dan, pada metode terakhir kami menggunakan stack untuk membalikkan string di java. Masing-masing metode ini memiliki kelebihan dan kekurangannya, dan pilihan metode bergantung pada kebutuhan spesifik masalah dan preferensi pemrogram. Secara keseluruhan, metode ini menunjukkan fleksibilitas dan keserbagunaan Java dalam manipulasi string.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION