CodeGym /Java Blogu /Rastgele /Java'da Dize Birleştirme
John Squirrels
Seviye
San Francisco

Java'da Dize Birleştirme

grupta yayınlandı
Java Dizisi birleştirme, iki veya daha fazla diziyi birleştirme ve yeni bir dizi döndürme işlemidir. Ayrıca, birleştirme işlemi, türleri dizelere dönüştürmek için kullanılabilir. Java'da dizeleri iki farklı şekilde birleştirebilirsiniz.

concat() yöntemi

Concat() yöntemi belirtilen dizgiyi verilen dizgenin sonuna ekler ve ardından oluşan yeni bir dizgiyi döndürür ve sonra döndürür. Elbette , üç veya daha fazla dizgeyi birleştirmek için concat() yöntemini kullanabiliriz .

concat() yöntemi imzası


public String concat(String str)
Yöntem, str dizesini geçerli dizenin sonunda birleştirir. Örneğin:

String s1 = “Hello ”; 
s1.concat("World")
yeni bir dizi "Merhaba Dünya" döndürür.

Concat() yöntem örneği

Başlatmalarından sonra iki diziyi birleştirelim, ardından daha fazla diziyi birleştirelim. Ve bir ilginç örnek daha: Argümana göre farklı mesajlar döndürecek bir metot oluşturacağız.

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");
    }

}
Çıktı:
Java CodeGym.cc/quest'te birleştirme öğreniyorum Anladım Anlamadım
concat() yönteminin dizeyi değiştirmediğini, ancak geçerli olanla parametre olarak iletilen olanı birleştirmenin bir sonucu olarak yeni bir tane oluşturduğunu bilmek önemlidir . Böylece yöntem yeni bir String nesnesi döndürür, bu nedenle bu kadar uzun String concat zincirleri oluşturabilirsiniz.

Aşırı yüklenmiş işleçler "+" ve "+=" kullanarak birleştirme

Bu iki işleci sayılarla aynı şekilde kullanabilirsiniz. Tıpkı concat() gibi çalışırlar . "Kod" dizesini ve "Gym" dizesini birleştirelim.

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

       String myString = "Code" + "Gym";
       myString+= ".cc";
       System.out.println(myString);
   }
}
Genellikle Java, kullanıcı sınıfları için aşırı yükleme işlemlerine izin vermez, ancak bu iki operatör aşırı yüklü olarak çalışır. + operatörünün içinde concat() saklandığını düşünebilirsiniz , ancak aslında burada başka bir mekanizma kullanılıyor. Java programı bayt koduna bakarsak, StringBuilder'ın yaratıldığını ve onun append() yönteminin kullanıldığını görürüz. Java Derleyici "+" operatörünü görür ve işlenenlerin ilkel türler değil, dizeler olduğunu anlar. Yani concat gibi çalışır.

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) veya + ?

Dizeleri yalnızca bir kez birleştirmeniz gerekiyorsa, concat() yöntemini kullanın. Diğer tüm durumlar için + veya Stringbuffer / StringBuilder operatörünü kullanmak daha iyidir . Ayrıca + operatörü türleri dönüştürmek için kullanılır. İşlenenlerden biri eşitse, örneğin sayı ve ikincisi bir dize ise, o zaman çıkışta bir dize alırız. Örnek:

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);
   }
}
(myInt + myString) bir String olup olmadığını kontrol etmek için instanceof kullandık . İşte bu programın çıktısı:
5 gün doğru
Ayrıca , dizelerden biri boşsa, + operatörünün ve concat()' in farklı çalıştığını unutmayın . + veya += operatörünü kullanırken işlenenlerden biri yalnızca bir - bir dize ise, daha önce de söylediğimiz gibi, tür dönüştürme gerçekleşir. Aynısı null için de geçerlidir. Yeni bir dize alacağız:

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

       String myString = "book ";
       System.out.println(myString + null);
       System.out.println((myString + null) instanceof String);
   }
}
Çıktı:
kitap boş doğru
Aynı işlem için concat() yöntemini uygularsak , bir NullPointerException elde ederiz .

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

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

   }
}
Çıktı:
Java.base/java.lang.String.concat(String.java:1972) adresindeki StringConcat.main(StringConcat.java:6) adresindeki "main" java.lang.NullPointerException iş parçacığında istisna
Yorumlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION