Concaténer des chaînes de caractères en Java

Rupam Yadav 12 octobre 2023
  1. L’opérateur + peut concaténer des valeurs de plusieurs types, tandis que concat() ne peut concaténer que des valeurs String
  2. Génération d’une nouvelle chaîne si la valeur est vide, tandis que concat() renvoie la même valeur
  3. + Concaténera null, tandis que concat() lancera une exception
  4. Peut concaténer plusieurs valeurs, alors que concat() ne peut prendre qu’une seule valeur
Concaténer des chaînes de caractères en Java

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-
Auteur: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

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

Article connexe - Java String