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)
GO TO FULL VERSION