Différences entre la méthode concat() et l'opérateur plus (+) en Java
méthode concat()
- concat() est une méthode utilisée pour la concaténation de chaînes.
- Nous passons un seul argument de chaîne dans concat() et le concaténer avec une autre chaîne.
Exemple :
public class PassingArgument { public static void main(String[] args) { String str = "Java", lang = "Language"; System.out.println(str.concat(lang)); } }
Sortie
D:\Programs>javac PassingArgument.java D:\Programs>java PassingArgument JavaLanguage
- Nous devons nous souvenir d'une chose au moment de passer l'argument dans la méthode concat() . Nous ne pouvons passer qu'une chaîne et si nous passons un autre type d'argument, nous obtiendrons une erreur.
- méthode concat() lève l'exception NullPointer lorsqu'une chaîne est concaténée avec 'null' .
Exemple :
public class ConcatNull { public static void main(String[] args) { String str1 = "We will get an exception string concatenate with null in case of concat()"; String str2 = null; // It raises an NullPointer Exception System.out.println(str1.concat(str2)); } }
Sortie
D:\Programs>javac ConcatNull.java D:\Programs>java ConcatNull Exception in thread "main" java.lang.NullPointerException at java.base/java.lang.String.concat(String.java:1936) at ConcatNull.main(ConcatNull.java:7)
Les performances de concat() est élevé par rapport à '+' car il génère un nouvel objet lorsque la longueur de la chaîne est supérieure à 0 .
Opérateur '+'
- '+' est un opérateur utilisé pour la concaténation de chaînes.
- Nous pouvons prendre n'importe quel nombre d'arguments de chaînes avec '+' et fusionnez-le avec toutes les autres chaînes.
Exemple :
public class PassingArgument { public static void main(String[] args) { String str = "Java", lang = "Language"; System.out.println(str + lang); } }
Sortie
D:\Programs>javac PassingArgument.java D:\Programs>java PassingArgument JavaLanguage
- Nous n'avons pas besoin de nous souvenir de quoi que ce soit au moment de passer l'argument dans l'opérateur '+' . Nous pouvons passer n'importe quel type d'argument si nous passons d'autres types d'arguments, nous n'obtiendrons aucune erreur.
- Opérateur '+' ne déclenche pas d'exception lorsqu'une chaîne est concaténée avec 'null' .
Exemple :
public class ConcatNull { public static void main(String[] args) { String str1 = "We will not get any exception when string concatenate with null in case of '+'"; String str2 = null; // It will not raises any NullPointer Exception System.out.println(str1 + str2); } }
Sortie
D:\Programs>javac ConcatNull.java D:\Programs>java ConcatNull We will not get any exception when string concatenate with null in case of '+'null
Les performances de l'opérateur '+' est faible par rapport à concat() car il génère toujours un nouvel objet, que la longueur de la chaîne soit supérieure à 0 ou inférieure à 0.