Calcul les premiers et les suivant java
Bonsoir tout le monde
pour cette grammaire je veux calculer les premiers et les suivant de chaque Vn
Code:
1 2 3 4
|
S -> a|A|B|e
A -> S|bc|j|b
B -> d |
grâce a l'aide d'un cher amis j'ai pu détecter les Vn et les Vt
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
Matcher matcher = Pattern.compile("(.+)->(.+)").matcher(chaine);
List<String> listVn = new ArrayList<>();
List<String> listVtpro = new ArrayList<>();
while( matcher.find() ) {
listVn.add( matcher.group(1).trim() );
listVtpro.add( matcher.group(2).trim() );
}
List<String> listVt = new ArrayList<>();
for(String Vtpro : listVtpro) {
for(String vt : Vtpro.split("")) {
if(( !listVn.contains(vt)) &&( !listVt.contains(vt))&& (!vt.equals("|")) ){
listVt.add(vt);
}
}
}
System.out.println( " les Vn sont ");
for( int i = 0; i < listVn.size(); i++)
{
System.out.println( listVn.get(i));
}
System.out.println( " les Vt sont ");
for( int i = 0; i < listVt.size(); i++)
{
System.out.println( listVt.get(i));
} |
quelqu'un a une idée !?