bonjour a tous!

Voila j'ai un tout petit probleme qui me prend la tête depuis hier.

Je souhaite avoir, a partir de plusieurs champs une adresses dites logiques que j'obtient par concatenation de plusieurs resultats de modulo.

Le probleme est que l'utilisateur peut lui ne pas renseigner tout les champs me permettant d'obtenir cette adresse.

Exemple: j'ai trois attribut a b c et d . a et c sont renseigné, pas b.
Ce qui me fait par exemple obtenir une adresse du genre 12 ** 09 ** (au hasard hein)Maintenant je souhaiterait obtenir dans une liste l'ensemble des possibilités des adresses, c'est a dire remplacer les * par un nombre compris entre 00 et un nombre (variable HC mais osef).

j'ai commencé a definir un pattern du coup, mais je ne suis pas sur que ca serve a ca et je trouve pas comment obtenir toutes mes adresses.

Donc voila je bloque ici.
Si quelqu'un sait comment me sortir de cette situation je lui en serait très reconnaissant.

Code:
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
32
33
34
35
36
37
38
39
40
41
42
43
 
  //Regarder les atrtibuts clé recherchés.
                String AdrLog="";
                ArrayList ListeAtt = new ArrayList();
                ArrayList ListeVal = new ArrayList();
                Rset = Stmt.executeQuery("SELECT HC,Type_A FROM ATTRIBUT WHERE IdFichier="+Id_fic+" AND HC<>0 ORDER BY ID");
                for(int i=0 ; i<vect_label.size() ; i++)
                {
                    if(Rset.next())
                    {
                        int HC = Rset.getInt("HC");
                        if(!vect_jtf.get(i).getText().equals("")) //** Si le champ n'est pas vide 
                        {
                              ListeAtt.add(vect_label.get(i).getText());
                              if(Rset.getString("Type_A").equalsIgnoreCase("CHAR"))
                              {
                                  if(Integer.valueOf(vect_jtf.get(i).getText().hashCode())%HC<10)
                                        AdrLog+="0"+Math.abs(vect_jtf.get(i).getText().toLowerCase().hashCode()%Rset.getInt("HC"));      
                                  else
                                      AdrLog+=Math.abs(vect_jtf.get(i).getText().toLowerCase().hashCode()%Rset.getInt("HC"));      
                              }
                              else
                              {
                                   if((Integer.valueOf(vect_jtf.get(i).getText())%HC)<10)
                                       AdrLog+="0"+Math.abs(Integer.valueOf(vect_jtf.get(i).getText())%Rset.getInt("HC"));
                                       //ListeVal.add(Integer.valueOf("0"+vect_jtf.get(i).getText())%Rset.getInt("HC"));
                                   else
                                       AdrLog+=Math.abs(Integer.valueOf(vect_jtf.get(i).getText())%Rset.getInt("HC"));
                                       //ListeVal.add(Integer.valueOf(vect_jtf.get(i).getText())%Rset.getInt("HC"));
                              }                  
                        }
 
                        else //si le champ est vide
                        {
 
                            AdrLog+="+[0-"+Rset.getInt("HC")+"]";
                            System.out.println("Champs non renseigné");
                        }
                    }
 
                }
 
                System.out.println("Masque Adresse logique:"+AdrLog);