Table de Transition

Constantine25000 -  
gaby10 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Voila j'ai un probleme avec le remplissage de ma table de transition ,en fait je veux rempir ma table comme une matrice ,j'ai une chaine de caractere séparées par # des que j'arrive a ce dernier il faut que je passe a la ligne suivante pour la remplir ausssi mais le probleme lors de l'execution j'ai q'une seul dimension et j'ai tous sur une meme ligne Voici mon code:
public class paris{

private int maxtransit;
private int maxcomponent = 7;
String AutomatonFileTxtName;

public Vector[][] transrule;
private int nbrTransRules;
static String str="a,a,a p p l e,2, ,p,ap,a p p l e,4,#,p,app,a p p l e,5,#,l,appl,a p p l e,7,#,e,apple,a p p l e,8,#,a,a,a p p l e,2,#,p,ap,a p p l e,4,#,p,app,a p p l e,5,#,l,appl,a p p l e,7,#,e,apple,a p p l e,8,#,s,apples,a p p l e s 9,#,p,p,p l y,3,#,l,pl,p l y,6,#,y,ply,p l y,9,#,p,p,p a l y,3,#,a,pa,p a l y,5,#,l,pal,p a l y,7,#,y,paly,p a l y,9";
/**@Constructeur */
/* transrule[i][0]: est un vecteur contenat le label
* transrule[i][1]:contient l'enchainement du mot
* transrule[i][2]: est un vecteur contenat l'expression reg

* transrule[i][3]: est un vecteur contenat les etats
* appartenant a transrule[i][1]
*/
public paris(int maxtrans, String str1){
this.maxtransit=maxtrans;
this.transrule = new Vector[maxtransit][maxcomponent];
this.AutomatonFileTxtName=str1;
this.SetTreeAutomata(str1);
//this.RegExpToFSA();
}

/**@intialize(): crée la table de transition @Transrule*/
public void initialize(){
// System.out.println("initialize" );
for (int i=0; i<=(maxtransit-1); i++)
{
for (int j = 0; j <= (maxcomponent-1); j++)
transrule[i][j] = new Vector();
}
System.out.println("initialize" );
}

/**@SetTreeAutomata:
* A partir d'une chaine de caracteres "str", cette procédure va remplir
* la table de transition @transrule
*/
public void SetTreeAutomata(String str2){
System.out.println("SetTreeAutomata" );
initialize();
int cnt = 0;
if (str2.length() == 0) {
System.err.println(" Missing sequence " );
System.exit(1);
}
System.out.println("if" );
while (str2!= null){
StringTokenizer st=new StringTokenizer(str2,"," );
int j=0;
System.out.println("while str2" );
while (st.hasMoreTokens()){
String x1= st.nextToken();
String x=x1.toLowerCase();
//if (x.equals("#" )) transrule[cnt][j].add(new String("" ));
// else
if (!x.equals("#" ))
transrule[cnt][j].add(new String (x));
else cnt++;
// System.out.println("if equals" );
j++;
System.out.println(transrule[0][1]);
}

Cordialement
Configuration: Windows Vista
Internet Explorer 7.0

1 réponse

  1. gaby10 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   58
     
    Vérifies bien ton code
    Où as tu utilisé ta variable Str?
    Où as tu fermé la boucle While(Str2!=null) et ta classe Paris??
    0