Há algum tempo me perguntaram como copiar uma String em java. Como sabemos que String é um objeto imutável, então podemos apenas atribuir uma string a outra para copiá-la. Se o valor da string original mudar, não mudará o valor da nova String por causa da imutabilidade.
Cópia de String em Java
Aqui está um curto programa em Java para copiar String e mostrar esse 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"
}
}
Note que podemos realizar a atribuição direta de uma variável a outra para qualquer objeto imutável. Não se limita apenas a objetos String. No entanto, se você deseja copiar um objeto mutável para outra variável, você deve realizar uma cópia profunda.
Métodos Alternativos de Cópia de String em Java
Existem algumas funções também que podem ser usadas para copiar string. No entanto, não é prático usá-las quando você pode copiar a string com segurança usando o operador de atribuição.
-
Usando o método
String.valueOf()
String strCopy = String.valueOf(str); String strCopy1 = String.valueOf(str.toCharArray(), 0, str.length()); //exagero*2
-
Usando o método
String.copyValueOf()
, um exagero total, mas é possível.String strCopy = String.copyValueOf(str.toCharArray()); String strCopy1 = String.copyValueOf(str.toCharArray(), 0, str.length()); //exagero*2
Se deseja copiar parte de uma string para outra, então os métodos valueOf
e copyValueOf
são úteis.
Source:
https://www.digitalocean.com/community/tutorials/java-string-copy