Qualche tempo fa mi è stato chiesto come copiare una stringa in Java. Come sappiamo, `String` è un oggetto `immutable`, quindi possiamo semplicemente assegnare una stringa a un’altra per copiarla. Se il valore della stringa originale cambierà, non cambierà il valore della nuova stringa a causa dell’immortalità.
Java String Copy
Ecco un breve programma di copia di stringhe in Java per mostrare questo comportamento.
package com.journaldev.string;
public class JavaStringCopy {
public static void main(String args[]) {
String str = "abc";
String strCopy = str;
str = "def";
System.out.println(strCopy); // prints "abc"
}
}
Nota che possiamo eseguire l’assegnazione diretta di una variabile a un’altra per qualsiasi oggetto immutabile. Non è limitato solo agli oggetti String. Tuttavia, se vuoi copiare un oggetto mutabile in un’altra variabile, dovresti eseguire una copia profonda.
Metodi alternativi di copia di stringhe in Java
Esistono anche alcune funzioni che possono essere utilizzate per copiare una stringa. Tuttavia, non è pratico utilizzarle quando è possibile copiare in modo sicuro una stringa usando l’operatore di assegnazione.
-
Utilizzando il metodo
String.valueOf()
String strCopy = String.valueOf(str); String strCopy1 = String.valueOf(str.toCharArray(), 0, str.length()); //overkill*2
-
Utilizzando il metodo
String.copyValueOf()
, un totale eccesso ma puoi farlo.String strCopy = String.copyValueOf(str.toCharArray()); String strCopy1 = String.copyValueOf(str.toCharArray(), 0, str.length()); //overkill*2
Se desideri copiare una parte della stringa in un’altra stringa, allora i metodi valueOf
e copyValueOf
sono utili.
Source:
https://www.digitalocean.com/community/tutorials/java-string-copy