Il y a quelque temps, on m’a demandé comment copier une chaîne de caractères en Java. Comme nous le savons, la String est un objet immuable, donc nous pouvons simplement attribuer une chaîne à une autre pour la copier. Si la valeur de la chaîne d’origine change, cela ne changera pas la valeur de la nouvelle chaîne en raison de son immuabilité.
Copie de chaîne en Java
Voici un court programme de copie de chaîne en Java pour illustrer ce comportement.
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"
}
}
Notez que nous pouvons effectuer une attribution directe d’une variable à une autre pour n’importe quel objet immuable. Ce n’est pas limité uniquement aux objets String. Cependant, si vous souhaitez copier un objet mutable dans une autre variable, vous devriez effectuer une copie profonde.
Méthodes alternatives de copie de chaîne en Java
Il existe également quelques fonctions qui peuvent être utilisées pour copier une chaîne. Cependant, il n’est pas pratique de les utiliser lorsque vous pouvez copier une chaîne en toute sécurité à l’aide de l’opérateur d’attribution.
-
En utilisant la méthode
String.valueOf()
String strCopy = String.valueOf(str); String strCopy1 = String.valueOf(str.toCharArray(), 0, str.length()); //overkill*2
-
En utilisant la méthode
String.copyValueOf()
, c’est un peu exagéré mais vous pouvez le faire.String strCopy = String.copyValueOf(str.toCharArray()); String strCopy1 = String.copyValueOf(str.toCharArray(), 0, str.length()); //overkill*2
Si vous souhaitez copier une partie de la chaîne dans une autre chaîne, alors les méthodes valueOf
et copyValueOf
sont utiles.
Source:
https://www.digitalocean.com/community/tutorials/java-string-copy