Les valeurs de args[x]

Fermé
John_Doe - 27 févr. 2014 à 06:51
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 27 févr. 2014 à 07:31
Bonjour,
je rencontre actuellement un problème qui me surprends assez...

Je fais une appli console en java qui prends des arguments en entrée, ou je souhaite changer le traitement en fonction de l'argument
Voici un exemple concret :


public class test {

public static void main(String[] args) {
int longueur = args.length;
String test = null;
int test2;

for (int i=0; i<longueur;i++) {
System.out.println(args[i]);
}

test = args[0];
System.out.println(test);
test2 = Integer.parseInt(args[1]);

if (args[0] == "a")
System.out.println("Success");

if (test2 == 1)
System.out.println("2nd Success");
}
}

Je voudrais avoir ici marqué "Success", sauf qu'en faisant

javac test.java (recompile pour être sur que j'ai la dernière version)
java test a b
j'ai bien en sortie dans println(args[0] qui donne "a", mais je n'affiche pas "Success", alors que c'est mon objectif...
"2nd Success" apparait cependant.


Merci d'avance!
Cordialment,

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
27 févr. 2014 à 07:31
Il ne faut jamais comparer la valeur de deux objets avec ==
Il faut utiliser la méthode equals.

if (args[0].equals("a"))
0