Concaténer des chaînes de caractères en Java
-
L’opérateur
+
peut concaténer des valeurs de plusieurs types, tandis queconcat()
ne peut concaténer que des valeursString
-
Génération d’une nouvelle chaîne si la valeur est vide, tandis que
concat()
renvoie la même valeur -
+
Concaténeranull
, tandis queconcat()
lancera une exception -
Peut concaténer plusieurs valeurs, alors que
concat()
ne peut prendre qu’une seule valeur
Aujourd’hui, nous examinerons les différences entre concat()
et l’opérateur +
. Ces deux opérateurs sont utilisés pour concaténer des chaînes, mais nous sommes ici pour trouver ce qui les rend différents l’un de l’autre.
L’opérateur +
peut concaténer des valeurs de plusieurs types, tandis que concat()
ne peut concaténer que des valeurs String
La première grande différence entre +
et concat()
est que nous pouvons concaténer plusieurs types de données avec une Chaîne
en utilisant l’opérateur +
, mais la méthode concat()
est limitée à la valeur d’un type de String
.
Si nous regardons sous le capot, chaque valeur de n’importe quel type de données est convertie en une String
en utilisant la méthode toString()
lorsque nous joignons des valeurs en utilisant l’opérateur +
.
L’exemple ci-dessous montre que nous pouvons joindre un int b
à une String a
. Mais si nous essayons cela avec concat()
, cela donnera une erreur d’exécution car il ne peut pas prendre une valeur de type int
.
package com.company;
public class Main {
public static void main(String[] args) {
String a = "String A-";
int b = 5;
System.out.println(a + b);
}
}
Production :
String A-5
Génération d’une nouvelle chaîne si la valeur est vide, tandis que concat()
renvoie la même valeur
La prochaine grande différence à noter est que le +
créera une nouvelle String
chaque fois qu’il obtiendra une valeur, même si sa longueur est nulle. Mais concat()
génère une nouvelle chaîne uniquement lorsqu’il rencontre que la longueur de la valeur est supérieure à zéro.
Cela peut changer considérablement le résultat si nous voulons comparer deux chaînes de caractères, comme nous l’avons fait ci-dessous. La première comparaison est effectuée lorsque la chaîne est concaténée en utilisant concat()
, tandis que la seconde comparaison montre le résultat de la comparaison de deux chaînes concaténées par +
.
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");
}
}
}
Production :
String d and a are equal using concat
String e and a are NOT equal plus operator
+
Concaténera null
, tandis que concat()
lancera une exception
Dans l’exemple ci-dessous, nous pouvons voir que si nous initialisons la variable b
avec null
, elle sera toujours concaténée sans aucune erreur. Cela se produit parce que l’opérateur +
convertit chaque valeur en String
et les joint ensuite.
package com.company;
public class Main {
public static void main(String[] args) {
String a = "String A-";
String b = null;
System.out.println(a + b);
}
}
Production :
String A-null
Contrairement à +
lorsque nous concaténons b
, qui contient null
en a
, il lancera une NullPointerException
, qui est la bonne sortie d’une manière générale.
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));
}
}
Production :
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)
Peut concaténer plusieurs valeurs, alors que concat()
ne peut prendre qu’une seule valeur
L’opérateur +
peut joindre plusieurs valeurs comme nous le faisons dans l’exemple suivant. Cependant, comme la fonction concat()
ne prend qu’un seul argument, elle ne peut pas concaténer plus de deux valeurs.
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));
}
}
Production :
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.
LinkedIn