Verketten von Zeichenketten in Java
-
Der
+
Operator kann Werte mehrerer Typen verketten, währendconcat()
nurString
-Werte verketten kann -
+
erzeugt einen neuenString
, wenn der Wert leer ist, währendconcat()
den gleichen Wert zurückgibt -
+
wirdnull
konkatenieren, währendconcat()
eine Exception wirft -
+
kann mehrere Werte verketten, währendconcat()
nur einen Wert annehmen kann
Heute werden wir uns die Unterschiede zwischen concat()
und dem +
-Operator ansehen. Beide werden verwendet, um Strings
zu verketten, aber wir sind hier, um herauszufinden, wodurch sie sich voneinander unterscheiden.
Der +
Operator kann Werte mehrerer Typen verketten, während concat()
nur String
-Werte verketten kann
Der erste große Unterschied zwischen +
und concat()
ist, dass wir mit dem +
-Operator mehrere Datentypen mit einem String
verketten können, aber die Methode concat()
ist darauf beschränkt, nur einen Wert vom Typ String
zu akzeptieren.
Wenn wir unter die Haube schauen, wird jeder Wert eines beliebigen Datentyps mit der Methode toString()
in einen String
konvertiert, wenn wir Werte mit +
verbinden.
Das folgende Beispiel zeigt, dass wir einen int b
mit einem String a
verbinden können. Aber wenn wir dies mit concat()
versuchen, gibt es einen Laufzeitfehler, da es einen Wert vom Typ int
nicht annehmen kann.
package com.company;
public class Main {
public static void main(String[] args) {
String a = "String A-";
int b = 5;
System.out.println(a + b);
}
}
Ausgabe:
String A-5
+
erzeugt einen neuen String
, wenn der Wert leer ist, während concat()
den gleichen Wert zurückgibt
Der nächste große Unterschied, den es zu beachten gilt, ist, dass +
jedes Mal einen neuen String
erzeugt, wenn es einen Wert erhält, auch wenn dessen Länge null ist. Aber concat()
erzeugt nur dann eine neue Zeichenkette, wenn es feststellt, dass die Länge des Wertes größer als Null ist.
Das kann das Ergebnis stark verändern, wenn wir zwei Zeichenketten vergleichen wollen, wie wir es unten getan haben. Der erste Vergleich wird durchgeführt, wenn die Zeichenkette mit concat()
konkateniert wird, während der zweite Vergleich das Ergebnis des Vergleichs zweier mit +
konkatenierter Zeichenketten zeigt.
package com.company;
public class Main {
public static void main(String[] args) {
String a = "String A";
String b = "";
String d = a.concat(b);
if (d == a) {
System.out.println("String d and a are equal using concat");
} else {
System.out.println("String d and a are NOT equal using concat");
}
String e = a + b;
if (e == a) {
System.out.println("String e and a are equal using plus operator");
} else {
System.out.println("String e and a are NOT equal plus operator");
}
}
}
Ausgabe:
String d and a are equal using concat
String e and a are NOT equal plus operator
+
wird null
konkatenieren, während concat()
eine Exception wirft
Im folgenden Beispiel können wir sehen, dass, wenn wir die Variable b
mit null
initialisieren, die Verkettung trotzdem ohne Fehler durchgeführt wird. Dies geschieht, weil der +
-Operator jeden Wert in String
konvertiert und dann zusammenfügt.
package com.company;
public class Main {
public static void main(String[] args) {
String a = "String A-";
String b = null;
System.out.println(a + b);
}
}
Ausgabe:
String A-null
Wenn wir im Gegensatz zu +
die Variable b
, die null
enthält, mit a
verketten, wird eine NullPointerException
geworfen, was im Allgemeinen die richtige Ausgabe ist.
package com.company;
public class Main {
public static void main(String[] args) {
String a = "String A-";
String b = null;
System.out.println(a.concat(b));
}
}
Ausgabe:
Exception in thread "main" java.lang.NullPointerException
at java.base/java.lang.String.concat(String.java:1937)
at com.company.Main.main(Main.java:14)
+
kann mehrere Werte verketten, während concat()
nur einen Wert annehmen kann
Der +
-Operator kann mehrere Werte zusammenfügen, wie wir es im folgenden Beispiel tun. Da die Funktion concat()
jedoch nur ein Argument annimmt, kann sie nicht mehr als zwei Werte verketten.
package com.company;
public class Main {
public static void main(String[] args) {
String a = "String A-";
String b = "String B-";
String c = "String C";
System.out.println(a + b + c);
System.out.println(a.concat(b));
}
}
Ausgabe:
String A-String B-String C
String A-String B-
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInVerwandter Artikel - Java String
- So führen Sie die Konvertierung von String in String-Array in Java durch
- Wie entferne ich eine Unterzeichenkette aus einer Zeichenkette in Java
- So konvertieren Sie Byte-Array in Hex-String in Java
- Wie man Java-String in Byte konvertiert
- Generieren Sie eine zufällige Zeichenkette in Java
- Die Swap-Methode in Java