errore pattern

  • Creatore Discussione Creatore Discussione io.89
  • Data di inizio Data di inizio

io.89

Nuovo Utente
24 Feb 2012
1
0
0
Ciaoo a tuttii help me please: tenendo conto di questo codice semplificato:

Codice:
public class MacinaStringhe_2 {
   public static void main(String[] args) {
      Scanner in_Str=new Scanner(System.in);
      Pattern patternRiga=    Pattern.compile("([A-Z0-9°]+)"); 
   
      String Riga     ="",       Riga2="";
      String blocco ="";
      int kB=1;
  
   do{     
      System.out.println("****************************************IMMETTI RIGA******************************************************");
       Riga=in_Str.nextLine();   
             Matcher matcher = patternRiga.matcher(Riga);
                  while(matcher.find() ){ 
                           String chiave= "°".concat(String.valueOf(kB)).concat("°");
                 //NOTA_sotto       matcher.group()
                            Riga2=Riga.replaceFirst(matcher.group(),chiave);
                              Riga=Riga2;  
                       System.out.println(Riga);  
                     kB++;
                 }      
    }while(true);
  
       
    }//metodo
   
   
}

se metto in input tale riga:
(CD(CD)(FR)F(GR))
ottengo in output questo:

(°1°(CD)(FR)F(GR))
(°1°(CD)(°2°)F(GR))
(°1°(CD)(°2°)F(°3°))

Ma non fa per me perchè io vorrei numerare ogni parentesi elementare con una chiave Stringa °n°,dove n è un numero.Vorrei avere come output invece ciò:

(CD°1°(FR)F(GR)) //sarebbe importante inoltre ,se fosse possibile che la chiave che sostituisce il blocco di parentesi
(CD°1°°2°F(GR)) //sia °n° e non con le parentesi (°n°)
(CD°1°°2°F°3°)

in poche parole matcher.group() dovrebbe restituire

(CD)
(FR)
(GR)

io non sono molto pratico con le regex,penso di avere sbagliato qui: Pattern patternRiga= Pattern.compile("([A-Z0-9°]+)"); qualcuno può darmi una mano a correggere, se non è chiaro qualcosa provo a spiegarmi meglio:)
 
Ultima modifica di un moderatore:

Discussioni simili