Rechercher : dans
Par :

Echanger deux variable de type string en java

Dernière réponse le 25 fév 2008 à 20:40:37 jlori, le 25 fév 2008 à 19:30:09 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « echanger deux variable de type string en java » dans :
Java: les variables Voir Le concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Java sont typées, c'est-à-dire que les données contenues dans...
Permuter deux variables sans utilisation d'une variable temp VoirUtilisation de pointeurs Le code #include void change(int *,int*); int main () { int a=2,b=5; printf("Avant : a=%d,b=%d\n",a,b); change(&a,&b); printf("Apres : a=%d,b=%d\n",a,b); return 0; } void change(int...
Chaînes VoirChaînes En programmation, nous avons souvent besoin de lire ou de manipuler des séquences de caractères. Pour compléter les chaînes littérales décrites précédemment, la bibliothèque standard fournit le type stringxe "string (bibliothèque)"xe...
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...
Les classes Java VoirLa notion d'objet Le langage Java intègre fortement le concept objet, il s'agit donc d'un langage orienté objet (LOO). Le terme langage orienté objet est plus qu'une simple appellation de plus pour désigner un type de langage, il...

1

 kilian, le 25 fév 2008 à 20:40:37

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....

Répondre à kilian