En algún momento me preguntaron cómo copiar una cadena en Java. Como sabemos que la cadena es un objeto inmutable, podemos simplemente asignar una cadena a otra para copiarla. Si el valor de la cadena original cambia, no cambiará el valor de la nueva cadena debido a la inmutabilidad.
Copia de Cadenas en Java
Aquí hay un programa corto en Java para copiar cadenas y mostrar este comportamiento.
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"
}
}
Ten en cuenta que podemos realizar la asignación directa de una variable a otra para cualquier objeto inmutable. No se limita solo a objetos de tipo cadena. Sin embargo, si deseas copiar un objeto mutable a otra variable, deberías realizar una copia profunda.
Métodos Alternativos de Copia de Cadenas en Java
También existen algunas funciones que se pueden utilizar para copiar cadenas. Sin embargo, no es práctico usarlas cuando puedes copiar la cadena de forma segura utilizando el operador de asignación.
-
Usando el método
String.valueOf()
String strCopy = String.valueOf(str); String strCopy1 = String.valueOf(str.toCharArray(), 0, str.length()); //excesivo*2
-
Usando el método
String.copyValueOf()
, un exceso total pero puedes hacerlo.String strCopy = String.copyValueOf(str.toCharArray()); String strCopy1 = String.copyValueOf(str.toCharArray(), 0, str.length()); //excesivo*2
Si deseas copiar parte de una cadena a otra cadena, entonces los métodos valueOf
y copyValueOf
son útiles.
Source:
https://www.digitalocean.com/community/tutorials/java-string-copy