CodeGym /Java Blog /Random-IT /Concatenazione di stringhe in Java
John Squirrels
Livello 41
San Francisco

Concatenazione di stringhe in Java

Pubblicato nel gruppo Random-IT
La concatenazione di stringhe Java è un'operazione per unire due o più stringhe e restituirne una nuova. Inoltre, l'operazione di concatenazione può essere utilizzata per convertire i tipi in stringhe. Puoi concatenare le stringhe in Java in due modi diversi.

metodo concat()

Il metodo Concat() aggiunge la stringa specificata alla fine della stringa data e quindi restituisce e quindi restituisce una nuova stringa formata. Sicuramente possiamo usare il metodo concat() per unire tre o più stringhe.

La firma del metodo concat()


public String concat(String str)
Il metodo concatena la stringa str alla fine della stringa corrente. Per esempio:

String s1 = “Hello ”; 
s1.concat("World")
restituisce una nuova stringa "Hello World".

Esempio di metodo Concat()

Concateniamo due stringhe dopo la loro inizializzazione, quindi concatiamo altre stringhe. E un altro esempio interessante: creeremo un metodo che restituirà messaggi diversi in base all'argomento.

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

}
L'uscita è:
Imparo la concatenazione in Java CodeGym.cc/quest ce l'ho non ce l'ho
È importante sapere che il metodo concat() non modifica la stringa, ma ne crea una nuova come risultato dell'unione di quella corrente e di quella passata come parametro. Quindi il metodo restituisce un nuovo oggetto String , ecco perché puoi creare catene così lunghe di String concat.

Concatenazione utilizzando gli operatori di overload "+" e "+="

Puoi utilizzare questi due operatori allo stesso modo dei numeri. Funzionano proprio come concat() . Concateniamo la stringa “Code” e la stringa “Gym”.

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

       String myString = "Code" + "Gym";
       myString+= ".cc";
       System.out.println(myString);
   }
}
Di solito Java non consente operazioni di sovraccarico per le classi utente, ma questi due operatori funzionano come sovraccarico. Potresti pensare che all'interno dell'operatore + si nasconda concat() , ma in realtà qui viene utilizzato un altro meccanismo. Se osserviamo il bytecode del programma Java, vedremo che è stato creato StringBuilder e viene utilizzato il suo metodo append() . Il compilatore Java vede l'operatore "+" e si rende conto che gli operandi sono stringhe, non tipi primitivi. Quindi funziona come 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) o + ?

Se devi unire le stringhe solo una volta, usa il metodo concat() . Per tutti gli altri casi, è preferibile utilizzare l' operatore + o Stringbuffer / StringBuilder . Inoltre, l' operatore + viene utilizzato per convertire i tipi. Se uno degli operandi è uguale, ad esempio, il numero e il secondo è una stringa, all'uscita otterremo una stringa. Esempio:

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);
   }
}
Abbiamo usato instanceof per verificare se (myInt + myString) è una stringa. Ecco l'output di questo programma:
5 giorni vero
Si noti inoltre che l' operatore + e concat() funzionano diversamente se una delle stringhe è nulla. Se uno degli operandi quando si utilizza l' operatore + o += è solo uno — una stringa, allora, come abbiamo già detto, si verifica la conversione del tipo. Lo stesso vale per null. Otterremo solo una nuova stringa:

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

       String myString = "book ";
       System.out.println(myString + null);
       System.out.println((myString + null) instanceof String);
   }
}
L'uscita è:
libro nullo vero
Se applichiamo il metodo concat() per la stessa operazione, otterremo una NullPointerException .

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

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

   }
}
L'uscita è:
Eccezione nel thread "principale" java.lang.NullPointerException in java.base/java.lang.String.concat(String.java:1972) in StringConcat.main(StringConcat.java:6)
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION