Bonsoir tout le monde
pour cette grammaire je veux calculer les premiers et les suivant de chaque Vn
grâce a l'aide d'un cher amis j'ai pu détecter les Vn et les Vt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 S -> a|A|B|e A -> S|bc|j|b B -> d
quelqu'un a une idée !?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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)); }
Partager