Salve,
devo convertire dei numeri romani in numeri ordinali (es.: II=secondo) prelevando le informazioni da un file properties e dividendo la stringa iniziale in token per dividere le parole.
Il programma funziona, solo che facendo il debug ho visto che anche se trova l'occorrenza di un numero romano corrispondente all'attuale token (cioè la parola attualmente "sotto esame"), il ciclo continua a verificare la corrispondenza con eventuali altri numeri romani.
Vorrei ottimizzare il tutto e mettere una variabile di flag booleana "isFound" in modo da poter fermare il ciclo interno, un foreach, nel caso la trova.
Per quanto stupida sia la cosa non ci riesco
Ecco il codice:
PS: replaceStr è un metodo da me realizzato che funziona.Codice PHP:public String applyPattern(String str) {
tokenizer = new StringTokenizer(str);
Set states = properties.keySet();
boolean isFound = false;
while (tokenizer.hasMoreElements()) {
String token = (String) tokenizer.nextElement();
for (Object key : states) {
// Se la stringa contiene la chiave avviene la sostituzione.
// NB: La chiave è case-sensitive
if (token.equals((String) key)) {
str = replaceStr(str, (String) key, properties
.getProperty((String) key));
// Ora vorrei settare isFound a true ed uscire dal foreach
// evitando un barbaro System.exit(0)
// Il while esterno deve invece continuare!
isFound = true;
}
}
}
return str;
}
Grazie dell'attenzione,
Matteo.


Rispondi quotando
