Echanger deux variable de type string en java
Fermé
jlori
Messages postés
2
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
25 février 2008
-
25 févr. 2008 à 19:30
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 1 nov. 2012 à 22:34
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 1 nov. 2012 à 22:34
A voir également:
- Python échanger deux valeurs
- Deux comptes whatsapp - Guide
- Deux ecran pc - Guide
- Citizen code python - Guide
- Supprimer une conversation messenger pour les deux personnes ✓ - Forum Facebook
- Un écouteur sur deux marche sans fil ✓ - Forum Casque et écouteurs
1 réponse
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
25 févr. 2008 à 20:40
25 févr. 2008 à 20:40
Ah non, tiens je te donne un exemple.
Si tu fais a.length() ça te donnera 5.
La méthode charAt ne fait que retourner le nième caractère en partant de zero.
Donc non seulement charAt ne te renverra que le cinquième caractère mais en plus le 5 ème caractère n'existe pas puisqu'on commence à compter à zero avec charAt.
Sans compter que quand tu entres a et b dans ta fonction, si tu affecte une nouvelle chaine à a et b, ça restera dans le contexte de la fonction et la modification ne sera pas persistante après l'appel de la fonction.
A vrai dire ta permutation est plus simple que ça:
Si tu veux passer par une fonction pour permuter deux chaines il faudrait utiliser des StringBuffer. Ce serait un peu compliqué de t'expliquer pourquoi mais si tu tiens à le faire par une fonction, je peux t'expliquer....
String a = "prout";
Si tu fais a.length() ça te donnera 5.
La méthode charAt ne fait que retourner le nième caractère en partant de zero.
Donc non seulement charAt ne te renverra que le cinquième caractère mais en plus le 5 ème caractère n'existe pas puisqu'on commence à compter à zero avec charAt.
Sans compter que quand tu entres a et b dans ta fonction, si tu affecte une nouvelle chaine à a et b, ça restera dans le contexte de la fonction et la modification ne sera pas persistante après l'appel de la fonction.
A vrai dire ta permutation est plus simple que ça:
public static void main(String[]args) { String x = new String("janvier"); String y = new String("mars"); String tmp = x; x = y; y = tmp; System.out.println( x + " "+ " "+y); }
Si tu veux passer par une fonction pour permuter deux chaines il faudrait utiliser des StringBuffer. Ce serait un peu compliqué de t'expliquer pourquoi mais si tu tiens à le faire par une fonction, je peux t'expliquer....
1 nov. 2012 à 22:20
j'aimerai bien que tu nous donne une brève explication pourquoi ça marche pas quand on permute des String
String a="aaaa"; String b="bbbb"; String temp;
Mercii
1 nov. 2012 à 22:34
Qui a dit que ça ne marchait pas ?
Le "piège" serait de confondre la variable et sa valeur (qui est une référence sur un objet), quand on fait une permutation sur les variables c'est "juste" un renommage (a devient b, et b devient a), mais les valeurs ne changent pas, car la permutation n'a aucun effet sur les valeurs, donc les références "pointeront" toujours sur le même objet.