Table de Transition

Constantine25000 -  
gaby10 Messages postés 460 Statut Membre -
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

1 réponse

gaby10 Messages postés 460 Statut Membre 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