Ciaoo a tuttii help me please: tenendo conto di questo codice semplificato:
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
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: