CodeGym /Java-Blog /Random-DE /String-Verkettung in Java
Autor
Milan Vucic
Programming Tutor at Codementor.io

String-Verkettung in Java

Veröffentlicht in der Gruppe Random-DE
Die Java-String-Verkettung ist eine Operation, um zwei oder mehr Strings zu verbinden und einen neuen zurückzugeben. Außerdem kann die Verkettungsoperation verwendet werden, um Typen in Zeichenfolgen umzuwandeln. Sie können Zeichenfolgen in Java auf zwei verschiedene Arten verketten.

concat()-Methode

Die Concat()- Methode hängt die angegebene Zeichenfolge am Ende der angegebenen Zeichenfolge an und gibt dann eine neu gebildete Zeichenfolge zurück. Natürlich können wir die concat()- Methode verwenden, um drei oder mehr Strings zu verbinden.

Die Signatur der concat()-Methode


public String concat(String str)
Die Methode verkettet die Zeichenfolge str am Ende der aktuellen Zeichenfolge. Zum Beispiel:

String s1 = “Hello ”; 
s1.concat("World")
gibt eine neue Zeichenfolge „Hello World“ zurück.

Beispiel für die Concat()-Methode

Lassen Sie uns zwei Strings nach ihrer Initialisierung verketten und dann weitere Strings verketten. Und noch ein interessantes Beispiel: Wir werden eine Methode erstellen, die je nach Argument unterschiedliche Nachrichten zurückgibt.

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

}
Die Ausgabe ist:
Ich lerne Verkettung in Java CodeGym.cc/quest Ich habe es, ich habe es nicht
Es ist wichtig zu wissen, dass die concat()- Methode die Zeichenfolge nicht ändert, sondern durch die Zusammenführung der aktuellen und der als Parameter übergebenen Zeichenfolge eine neue erstellt. Die Methode gibt also ein neues String- Objekt zurück, weshalb Sie so lange String-Verknüpfungsketten erstellen können.

Verkettung mit überladenen Operatoren „+“ und „+="

Sie können diese beiden Operatoren auf die gleiche Weise wie bei Zahlen verwenden. Sie funktionieren genauso wie concat() . Verketten wir die Zeichenfolge „Code“ und die Zeichenfolge „Gym“.

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

       String myString = "Code" + "Gym";
       myString+= ".cc";
       System.out.println(myString);
   }
}
Normalerweise erlaubt Java keine Überladungsoperationen für Benutzerklassen, aber diese beiden Operatoren funktionieren wie überladen. Man könnte meinen, dass sich im + -Operator concat() verbirgt , aber tatsächlich wird hier ein anderer Mechanismus verwendet. Wenn wir uns den Bytecode des Java-Programms ansehen, sehen wir, dass StringBuilder erstellt wurde und seine append()- Methode verwendet wird. Der Java-Compiler sieht den „+“-Operator und erkennt, dass es sich bei den Operanden um Zeichenfolgen und nicht um primitive Typen handelt. Es funktioniert also wie 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) oder + ?

Wenn Sie Zeichenfolgen nur einmal zusammenführen müssen, verwenden Sie die Methode concat() . In allen anderen Fällen ist es besser, entweder den +- oder den Stringbuffer / StringBuilder- Operator zu verwenden. Außerdem wird der + -Operator zum Konvertieren von Typen verwendet. Wenn einer der Operanden gleich ist, zum Beispiel eine Zahl, und der zweite ein String ist, erhalten wir am Ausgang einen String. Beispiel:

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);
   }
}
Wir haben „instanceof“ verwendet , um zu prüfen, ob (myInt + myString) ein String ist. Hier ist die Ausgabe dieses Programms:
5 Tage wahr
Beachten Sie außerdem, dass der + -Operator und concat() unterschiedlich funktionieren, wenn einer der Strings null ist. Wenn einer der Operanden bei Verwendung des Operators + oder += nur einer ist – ein String, dann findet, wie bereits erwähnt, eine Typkonvertierung statt. Das Gleiche gilt für null. Wir bekommen einfach eine neue Zeichenfolge:

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

       String myString = "book ";
       System.out.println(myString + null);
       System.out.println((myString + null) instanceof String);
   }
}
Die Ausgabe ist:
Buch null wahr
Wenn wir die Methode concat() für denselben Vorgang anwenden , erhalten wir eine NullPointerException .

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

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

   }
}
Die Ausgabe ist:
Ausnahme im Thread „main“ java.lang.NullPointerException bei java.base/java.lang.String.concat(String.java:1972) bei StringConcat.main(StringConcat.java:6)
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION