Fonction qui a un tableau comme argument
Fermé
nora
-
29 juil. 2011 à 10:25
poukkid Messages postés 106 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 11 avril 2012 - 29 juil. 2011 à 13:31
poukkid Messages postés 106 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 11 avril 2012 - 29 juil. 2011 à 13:31
A voir également:
- Fonction qui a un tableau comme argument
- Tableau croisé dynamique - Guide
- Fonction si et - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Trier un tableau excel - Guide
2 réponses
poukkid
Messages postés
106
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
11 avril 2012
11
Modifié par poukkid le 29/07/2011 à 12:00
Modifié par poukkid le 29/07/2011 à 12:00
Salut,
Déja ton code comporte plusieurs erreurs de syntaxe.
3eme ligne : if (l[].start... il manque la case du tableau dont tu veux vérifier le début. (j'ai mis 0 pour l'exemple)
la méthode s'appelle startsWith()
et il manque une parenthèse a la fin de ce if
5eme ligne, il manque un point virgule ....split(".");
12eme ligne, il manque un point virgule également ...ligne[i]);
Utilises un éditeur java spécialisé comme eclipse, ca t'aidera pour les erreurs de syntaxe notamment.
Ensuite, que fait ton code? tu crées un tableau de chaine "Chaine[]" que tu remplis avec le split sur la case 2 de ton tableau l, mais tu ne fais rien avec cette variable "Chaine" ... (C'est de la sémantique c'est a toi de voir mais pour l'instant ton code ne fait rien, a part l'erreur qui apparait si ton startsWith échoue)
Déja ton code comporte plusieurs erreurs de syntaxe.
3eme ligne : if (l[].start... il manque la case du tableau dont tu veux vérifier le début. (j'ai mis 0 pour l'exemple)
la méthode s'appelle startsWith()
et il manque une parenthèse a la fin de ce if
5eme ligne, il manque un point virgule ....split(".");
12eme ligne, il manque un point virgule également ...ligne[i]);
public void tableau(String l[]) { if(l[0].startsWith("-")){ String chaine[]=l[2].split("."); } else { System.out.println("faux"); } } //dans la classe main //ligne = ligne dans un fichier text deja definis dans la classe for(int i=1;i<5;i++) { tableau(ligne[i]); }
Utilises un éditeur java spécialisé comme eclipse, ca t'aidera pour les erreurs de syntaxe notamment.
Ensuite, que fait ton code? tu crées un tableau de chaine "Chaine[]" que tu remplis avec le split sur la case 2 de ton tableau l, mais tu ne fais rien avec cette variable "Chaine" ... (C'est de la sémantique c'est a toi de voir mais pour l'instant ton code ne fait rien, a part l'erreur qui apparait si ton startsWith échoue)
poukkid
Messages postés
106
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
11 avril 2012
11
Modifié par poukkid le 29/07/2011 à 13:35
Modifié par poukkid le 29/07/2011 à 13:35
Si j'ai bien compris, tu as un fichier, avec des lignes similaires.
tu as toutes lignes dans un tableau de lignes.
Pour chaque ligne, donc pour chaque case de ce tableau, tu veux appeler la fonction tableau.
Donc dans ta boucle, il te faut en effet passer en argument une ligne, donc comme tu l'as écrit :
par contre ta méthode doit prendre en argument une chaine et non pas un tableau de chaines:
comme ca tu n'as plus qu'a tester le début de cette chaine avec startsWith et ensuite split la chaine et faire ton traitement.
Sinon si c'est pas le fonctionnement de ton code et que tu dois passer un tableau en paramètre, alors passes un tableau :
Si ca ne répond toujours pas a ta question, met des vrais morceaux de ton code, ou précises ton problème.
Un tableau peut être passé en paramètre de fonction, il n'y a pas de problème la dessus. Si ta fonction ne l'accepte pas, alors soit tu ne passes pas un tableau et elle en attend un (ce qui a l'air d'être le cas), soit tu passe un tableau et elle n'en attend pas(dans ce cas ton exemple est loin de la réalité).
tu as toutes lignes dans un tableau de lignes.
Pour chaque ligne, donc pour chaque case de ce tableau, tu veux appeler la fonction tableau.
Donc dans ta boucle, il te faut en effet passer en argument une ligne, donc comme tu l'as écrit :
tableau(ligne[i]);
par contre ta méthode doit prendre en argument une chaine et non pas un tableau de chaines:
public void tableau(String l)
comme ca tu n'as plus qu'a tester le début de cette chaine avec startsWith et ensuite split la chaine et faire ton traitement.
Sinon si c'est pas le fonctionnement de ton code et que tu dois passer un tableau en paramètre, alors passes un tableau :
tableau(ligne)
Si ca ne répond toujours pas a ta question, met des vrais morceaux de ton code, ou précises ton problème.
Un tableau peut être passé en paramètre de fonction, il n'y a pas de problème la dessus. Si ta fonction ne l'accepte pas, alors soit tu ne passes pas un tableau et elle en attend un (ce qui a l'air d'être le cas), soit tu passe un tableau et elle n'en attend pas(dans ce cas ton exemple est loin de la réalité).
29 juil. 2011 à 12:09
ce que j'ai cité c'est juste un exemple et j'utilise eclipse.
la fonction fait des traitement ( test) sur des lignes
les lignes que j'ai dans le fichier text ont la meme syntaxe
alors pour ne pas traiter a chaque fois je voulais faire un fonction qui repete le traitement pour chaque ligne , mais ça marche pas !
l'erreur est sur la fonction n'accepte pas un tableau comme argument :s