Fonction qui a un tableau comme argument
nora
-
poukkid Messages postés 108 Statut Membre -
poukkid Messages postés 108 Statut Membre -
Bonjour, Tous le monde
bon je veux programmer une fonction qui prend un tableau comme argument
en [java] mais ça marche pas voila le code, j'espere que vous m'aidiez
<code>
public void tableau(String l[])
{
if(l[].startWith("-")
{
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])
}
<fin_code>
Malheureusment, ce code ça marche pas
merci en avance
bon je veux programmer une fonction qui prend un tableau comme argument
en [java] mais ça marche pas voila le code, j'espere que vous m'aidiez
<code>
public void tableau(String l[])
{
if(l[].startWith("-")
{
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])
}
<fin_code>
Malheureusment, ce code ça marche pas
merci en avance
A voir également:
- Fonction qui a un tableau comme argument
- Tableau word - Guide
- Fonction si et - Guide
- Trier un tableau excel - Guide
- Imprimer un tableau excel - Guide
- Tableau ascii - Guide
2 réponses
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)
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é).
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