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:

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) keyproperties
                        
.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;

PS: replaceStr è un metodo da me realizzato che funziona.

Grazie dell'attenzione,
Matteo.