Occurence
tic
-
tic -
tic -
Bonjour,
Je débute en java et je dois ecrire un programme Occ.java lisant tous les arguments passés sur la ligne de commande et recherchant si le premier argument existe dans la suite de la ligne.J'ai essayé de le faire mais ça ne marche pas,voici mon code:
Je débute en java et je dois ecrire un programme Occ.java lisant tous les arguments passés sur la ligne de commande et recherchant si le premier argument existe dans la suite de la ligne.J'ai essayé de le faire mais ça ne marche pas,voici mon code:
class Occ
{ public static void main(String args[])
{
int d;String b;
b=args[0];
for(int i=1;i<=args.length;i++)
{
i=i+1;
if (args[i]==b)
{
System.out.println("TROUVE");
}
else
{
System.out.println("Non trouve");
}
}
}
}
2 réponses
-
Bonjour,
Plusieurs choses.
D'une part les indices commencent à 0, donc si ton tableau est de taille n, le dernier indice c'est n-1, pas n.
Il ne faut donc pas fairei<=args.length
maisi<=args.length-1
ou plus simplementi<args.length
.
De plus, les String sont des objets, l'opérateur==
va comparer deux objets pour dire s'ils sont identiques, mais ce que te veux toi c'est comparer deux objets pour savoir s'ils ont la même valeur. Pour cela tu as la méthodeequals
.
Enfin, tu as une double incrémentation dans ta boucle, il y a lei++
mais aussii=i+1;
, il ne faut en garder qu'un seul, sinon ça comparera seulement un argument sur deux...
Remarque : ta variabled
ne sert à rien. -
Merci d'avoir repondu!Pour le i=i+1 je l' ai fait car je veux que la comparaison commence a partir de arg[1],car ça ne sert a rien que je compare arg[0] et arg[0].
J'ai essayé d'utiliser la methode equals en faisant ceci if (args[i]equalsb) mais à la compilation j'ai quelques erreurs-
"je veux que la comparaison commence a partir de arg[1]"
Ça tu l'as déjà pris en compte dans l'initialisationint i=1
qui exclu de fait i==0
Si tu deux incrémentations (i=i+1 et i++) ça veut dire que tu vas aller de 2 en 2, tu commenceras donc à 1 puis tu passeras au 3, sans tester le 2 (idem pour le 4, le 6...)
"if (args[i]equalsb) mais à la compilation j'ai quelques erreurs"
Tu m'étonnes...
Il faudrait que tu apprennes les bases de Java, en l'occurrence ici sur l'appel des méthodes.
https://forums.commentcamarche.net/forum/affich-37622112-java-les-methodes -
-