|
|
|
|
Bonjour,
class Test{
static void echange(String a, String b){
String tmp ;
tmp =a.charAt(a.length());
a = b.charAt(b.length());;
b = tmp.charAt(tmp.length());;
}
public static void main(String[]args){
String x = new String("janvier");
String y = new String("mars");
Test.echange(x,y);
System.out.println( x + " "+ " "+y);
}
}
est ce que code vous parait correct pour echanger deux vaiables
?
Configuration: Windows Vista Firefox 2.0.0.12
Ah non, tiens je te donne un exemple.
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.... |