J'ai du mal à me décider sur la question du hors-sujet, dans la mesure où tout ici est question de String et d'efficacité et donc on est plus ou moins dans le sujet... Je décide pour l'instant que ça passe.

Envoyé par
francky74
J'ai du mal à imaginer :
Une chose que l'on ne peut modifier, si on la veut différente, ne faut-il pas en créer une autre ? Ou alors c'est que la nouvelle remplace l'ancienne et du coup il n'y a pas plusieurs objets créés?
Ben oui, en Java si on veut faire des modifs sur une String qu'on a, le principe est d'en construire une autre. C'est pour ça que String.trim() renvoie une autre String au lieu de modifier l'existante, par exemple, et qu'il faut faire :
maString = maString.trim();
C'est un peu la même chose qu'un int. Si tu veux le multiplier par deux il faut faire :
Parce qu'on ne peut pas modifier ce que veut dire la valeur d'un int, 8 ça sera toujours 8. Si on veut deux fois ça à la place, alors ce qu'il faut prendre c'est 16, pas modifier le sens de 8.
À noter que si ça coûte trop cher de créer de nouvelles String en pagaille juste pour ajouter quelques mots de-ci de-là, on peut utiliser StringBuilder à la place. Ça ça peut se modifier, et quand on a fini on peut lui demander de construire le résultat sous forme de String.
Partager