Urgant aide SVP

id000 Messages postés 23 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 2 juin 2009 - 23 mars 2008 à 11:57
id000 Messages postés 23 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 2 juin 2009 - 23 mars 2008 à 21:19
Bonjour
lorsque j'ai compilé ce code:



import java.util.*;



public class delim
{public static void main(String[] args)
   {  String chaine="Si a\nSi b\nAlors c\n Si f\nSi j\nAlors a\nSi b\nAlors w";
      StringTokenizer st = new StringTokenizer(chaine, "\n");
      int nt=st.countTokens();
      String t[] = new String[nt];
      int i = 0;
      while (st.hasMoreTokens()){
      t[i++]=st.nextToken();}
   Fait f[]=new Fait[nt];
   for(int j=0;j<nt;j++)
   { String mot=new String();
     {if( t[j].startsWith("Si "))
      mot=t[i].substring(2);
         for( int k=0 ; k<nt ; k++)
         { f[k].libelle=mot;
     System.out.println("Faits=="+ f[k].libelle);
         } 
     }
    }        
  }
}
// *declaration des fait
class Fait
{ String libelle;
  boolean etat=true;
  boolean demandable=true;
  boolean editable=true;
  int deduitde;
 }



il ne me renvoi aucune érreur mais a l'exécution il m'affiche exception in thread main
d'aprés vous quel le probléme svp j'ai besoin de votre aide

4 réponses

cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
23 mars 2008 à 15:12
Salut,

pour l'instruction
mot=t[i].substring(2);
je pense que tu veux dire t[j] et non pas t[i]..

il y a une autre faute qui renvoie un NullPointerException :
f[k].libelle=mot;

car les objets f[k] ne sont pas encore crées ! (t'as pas fait f[k] = new Fait(...).

ps : évite de faire des classes qui ont la forme de "structures" (je parle de la classe Fait)..
0
id000 Messages postés 23 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 2 juin 2009
23 mars 2008 à 18:55
merci ,j'ai corrigé l'instruction mot=t[i].substring(2); et pour f[k] j'ai crée déjat un objet
  Fait f[]=new Fait[nt];
le probléme reste le meme toujours
je suit un débutant SVP aide
0
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
23 mars 2008 à 19:13
Salut,

modifie ta classe Fait comme suit :

class Fait{
    String libelle;
    boolean etat;
    boolean demandable;
    boolean editable;
    int deduitde;
   
    public Fait(String libelle, boolean etat, boolean demandable, boolean editable, int deduitde){
        this.libelle = libelle;
        this.etat = etat;
        this.demandable = demandable;
        this.editable = editable;
        this.deduitde = deduitde;   
    }   
}

et après avoir fait

Fait f[]=new Fait[nt];

tu dois faire quelques choses comme f[i] = new Fait(...) pour initialiser les objets f[i]..

comme dans cet exemple :
Fait f[] = new Fait[2];
f[0] = new Fait("libellé1", true, true, false, 5);

f[1] = new Fait("libellé2", false, true, false, 5);












et s'il te plaît fait un peu d'effort et lis des cours de bases il y en a plein dur Internet !
0
id000 Messages postés 23 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 2 juin 2009
23 mars 2008 à 21:19
Merci beaucoup pour votre aide




<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 





 
0
Rejoignez-nous