CodeGym /Blog Java /Random-FR /Concaténation de chaînes en Java
Auteur
Milan Vucic
Programming Tutor at Codementor.io

Concaténation de chaînes en Java

Publié dans le groupe Random-FR
La concaténation de chaînes Java est une opération permettant de joindre deux chaînes ou plus et d'en renvoyer une nouvelle. En outre, l'opération de concaténation peut être utilisée pour transtyper des types en chaînes. Vous pouvez concaténer des chaînes en Java de deux manières différentes.

méthode concat()

La méthode Concat() ajoute la chaîne spécifiée à la fin de la chaîne donnée, puis renvoie puis renvoie une nouvelle chaîne formée. Bien sûr, nous pouvons utiliser la méthode concat() pour joindre trois chaînes ou plus.

La signature de la méthode concat()


public String concat(String str)
La méthode concatène la chaîne str à la fin de la chaîne actuelle. Par exemple:

String s1 = “Hello ”; 
s1.concat("World")
renvoie une nouvelle chaîne "Hello World".

Exemple de méthode Concat()

Concattons deux chaînes après leur initialisation, puis concatons d'autres chaînes. Et un autre exemple intéressant : nous allons créer une méthode qui retournerait différents messages selon l'argument.

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

}
La sortie est :
J'apprends la concaténation dans Java CodeGym.cc/quest J'ai compris Je n'ai pas compris
Il est important de savoir que la méthode concat() ne change pas la chaîne, mais en crée une nouvelle suite à la fusion de l'actuelle et de celle passée en paramètre. Ainsi, la méthode renvoie un nouvel objet String , c'est pourquoi vous pouvez créer de si longues chaînes de String concat.

Concaténation à l'aide des opérateurs surchargés "+" et "+="

Vous pouvez utiliser ces deux opérateurs de la même manière qu'avec les nombres. Ils fonctionnent comme concat() . Concaténons la chaîne « Code » et la chaîne « Gym ».

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

       String myString = "Code" + "Gym";
       myString+= ".cc";
       System.out.println(myString);
   }
}
Habituellement, Java n'autorise pas les opérations de surcharge pour les classes d'utilisateurs, mais ces deux opérateurs fonctionnent comme surchargés. Vous pourriez penser qu'à l'intérieur de l'opérateur + se cache concat() , mais en fait, un autre mécanisme est utilisé ici. Si nous regardons le bytecode du programme Java, nous verrons que StringBuilder a été créé et que sa méthode append() est utilisée. Le compilateur Java voit l'opérateur "+" et se rend compte que les opérandes sont des chaînes, pas des types primitifs. Cela fonctionne donc comme 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) ou + ?

Si vous ne devez fusionner des chaînes qu'une seule fois, utilisez la méthode concat() . Pour tous les autres cas, il est préférable d'utiliser soit l' opérateur + soit Stringbuffer / StringBuilder . De plus, l' opérateur + est utilisé pour convertir les types. Si l'un des opérandes est égal, par exemple, le nombre et le second est une chaîne, alors à la sortie, nous obtiendrons une chaîne. Exemple:

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);
   }
}
Nous avons utilisé instanceof pour vérifier si (myInt + myString) une chaîne. Voici la sortie de ce programme :
5 jours vrai
Notez également que l' opérateur + et concat() fonctionnent différemment si l'une des chaînes est nulle. Si l'un des opérandes lors de l'utilisation de l' opérateur + ou += n'est qu'un - une chaîne, alors, comme nous l'avons déjà dit, une conversion de type se produit. La même chose s'applique à null. Nous allons juste obtenir une nouvelle chaîne :

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

       String myString = "book ";
       System.out.println(myString + null);
       System.out.println((myString + null) instanceof String);
   }
}
La sortie est:
livre nul vrai
Si nous appliquons la méthode concat() pour la même opération, nous obtiendrons une NullPointerException .

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

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

   }
}
La sortie est:
Exception dans le thread "main" java.lang.NullPointerException à java.base/java.lang.String.concat(String.java:1972) à StringConcat.main(StringConcat.java:6)
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION