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

A voir également:

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
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]);

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)
0
Bonjour , merci pour votre reponse
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
0
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
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 :

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é).
0