CodeGym /Java Blog /Acak /Penggabungan String di Java
John Squirrels
Level 41
San Francisco

Penggabungan String di Java

Dipublikasikan di grup Acak
Penggabungan String Java adalah operasi untuk menggabungkan dua atau lebih string dan mengembalikan yang baru. Selain itu, operasi penggabungan dapat digunakan untuk mentransmisikan tipe ke string. Anda dapat menggabungkan string di Java dengan dua cara berbeda.

metode concat()

Metode Concat() menambahkan string yang ditentukan di akhir string yang diberikan dan kemudian mengembalikan dan kemudian mengembalikan string baru yang terbentuk. Tentu kita bisa menggunakan metode concat() untuk menggabungkan tiga string atau lebih.

Tanda tangan metode concat()


public String concat(String str)
Metode menggabungkan string str di akhir string saat ini. Misalnya:

String s1 = “Hello ”; 
s1.concat("World")
mengembalikan string baru "Hello World".

Contoh metode Concat()

Mari kita gabungkan dua string setelah inisialisasinya, lalu gabungkan lebih banyak string. Dan satu lagi contoh menarik: kita akan membuat sebuah metode yang akan mengembalikan pesan yang berbeda menurut argumen.

public class ConcatTest {

    public static void main(String[] args) {
        //String concat with concat() method 
        String string1 = "I learn ";
        String string2 = "concatenation in Java";
        //here we use concat() method to join the two strings above
        String result = string1.concat(string2);
        System.out.println(result);
        //concat() method to join 4 strings
        String myWebSite = "Code".concat("Gym").concat(".cc").concat("/quest");
        System.out.println(myWebSite); // here we've got  "CodeGym.cc/quest"

        System.out.println(myMessage(true));
        System.out.println(myMessage(false));
    }

    private static String myMessage(boolean b) {   //concat() method with selection statement 
        return "I have".concat(b ? " " : "n't ").concat("got it");
    }

}
Outputnya adalah:
Saya belajar rangkaian di Java CodeGym.cc/quest Saya sudah mendapatkannya, saya belum mendapatkannya
Penting untuk diketahui bahwa metode concat() tidak mengubah string, tetapi membuat string baru sebagai hasil dari penggabungan string saat ini dan string yang diteruskan sebagai parameter. Jadi metode ini mengembalikan objek String baru , itu sebabnya Anda dapat membuat rantai string yang panjang.

Penggabungan menggunakan operator kelebihan beban "+" dan "+="

Anda dapat menggunakan kedua operator ini dengan cara yang sama seperti pada angka. Mereka bekerja seperti concat() . Mari gabungkan string "Code" dan string "Gym".

public class StringConcat {
   public static void main(String[] args) {

       String myString = "Code" + "Gym";
       myString+= ".cc";
       System.out.println(myString);
   }
}
Biasanya Java tidak mengizinkan operasi kelebihan beban untuk kelas pengguna, tetapi kedua operator ini berfungsi sebagai kelebihan beban. Anda mungkin mengira bahwa di dalam + operator menyembunyikan concat() , tetapi sebenarnya, mekanisme lain digunakan di sini. Jika kita melihat bytecode program Java, kita akan melihat bahwa StringBuilder telah dibuat dan metode append() digunakan. Java Compiler melihat operator “+” dan menyadari bahwa operan adalah string, bukan tipe primitif. Jadi ini berfungsi seperti concat.

public class StringTest2 {

   public static void main(String[] args) {

       String hello = "hello";
       String world = " world!";

       String helloworld = (new StringBuilder().append(hello).append(world).toString());
       System.out.println(helloworld);
       //this is the same as:
       String result = hello + world;
   }
}

Concat(0) atau + ?

Jika Anda perlu menggabungkan string sekali saja, gunakan metode concat() . Untuk semua kasus lainnya, lebih baik menggunakan operator + atau Stringbuffer / StringBuilder . Juga, operator + digunakan untuk mengonversi jenis. Jika salah satu operan sama, misalnya angka dan yang kedua adalah string, maka di pintu keluar kita akan mendapatkan string. Contoh:

public class StringConcat {
   public static void main(String[] args) {
       int myInt = 5;
       String myString = " days";

       System.out.println(myInt + myString);
       boolean b = (myInt + myString) instanceof String;
       System.out.println(b);
   }
}
Kami menggunakan instanceof untuk memeriksa apakah (myInt + myString) sebuah String. Berikut adalah output dari program ini:
5 hari benar
Perhatikan juga bahwa operator + dan concat() bekerja secara berbeda jika salah satu string adalah null. Jika salah satu operan saat menggunakan operator + atau += hanya satu — sebuah string, maka, seperti yang telah kami katakan, konversi tipe terjadi. Hal yang sama berlaku untuk nol. Kami hanya akan mendapatkan string baru:

public class StringConcat {
   public static void main(String[] args) {

       String myString = "book ";
       System.out.println(myString + null);
       System.out.println((myString + null) instanceof String);
   }
}
Outputnya adalah:
buku nol benar
Jika kita menerapkan metode concat() untuk operasi yang sama, maka kita akan mendapatkan NullPointerException .

public class StringConcat {
   public static void main(String[] args) {

       String myString = "book ";
       System.out.println(myString.concat(null));

   }
}
Outputnya adalah:
Pengecualian di utas "utama" java.lang.NullPointerException di java.base/java.lang.String.concat(String.java:1972) di StringConcat.main(StringConcat.java:6)
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION