Methoden Pattern Matching Vokal

Maxwill

Mitglied
Hi Leute,

ich versuche gerade zwei Methoden zu schreiben und zwar geht es um Vokale in einem String.

in der ersten will ich überprüfen ob in einem String ein Vokal enthalten ist.
Java:
public boolean istVokalImString(String string){
    return string.matches(".[aAeEiIoOuUäüöÄÜÖ].");
}


und im zweiten will ich das ich den kompletten String hinter dem ersten Vokal zurück bekomme

Java:
private String getRestVomString(String string){
if(!istVokalImString(string)){
return "";
}
for (int i = 0; i < string.length(); i++) {
         if(Pattern.matches("[aAeEiIoOuUäüöÄÜÖ]",filter.charAt(i)+""))
               return filter.substring(i);
}
return "";
}


leider bekomme ich das Pattern in der ersten Methode nicht hin.

Der Fehler liegt am Pattern, ich würde gerne ein Pattern aufstellen in dem sich Mindestens ein Buchstabe vor und nach dem Vokal sein .

ich hoffe ihr könnt mir helfen.

so long Maxwill
 
Fangen wir mal mit dem ersten an. Im Grunde ist das schon in Ordnung so, nur halt, dass vor und nach dem Vokal beliebige Zeichen erlaubt sind (auch Leerzeichen, andere Vokale etc.) Ist das so gewollt? Wenn nein, dann sag du uns doch mal, was alles erlaubte Zeichen an dieser Stelle sind!
 
Fangen wir mal mit dem ersten an. Im Grunde ist das schon in Ordnung so, nur halt, dass vor und nach dem Vokal beliebige Zeichen erlaubt sind

Das stimmt so leider nicht ganz. Hier muss ich dann leider mal "Korinthenkacker" sein. Es wird nämlich jeweils (also davor und dahinter) genau ein einziges (beliebiges) Zeichen erlaubt (aktuell matcht das Pattern also nur, wenn du einen 3-stelligen String hast, der an zweiter Stelle ein Vokal/Umlaut enthält). Und das ist auch eines der beiden Probleme.
Dementsprechend solltest du also beliebig viele beliebige Zeichen vor und hinter dem eigentlichen Pattern zulassen.
Darüber hinaus darfst du vor dem eigentlichen Pattern aber nur so viele beliebige Zeichen zulassen, bis das nächste Zeichen dein Pattern matcht (das ist sozusagen das zweite "Zeichen" das dir in deiner RegEx noch fehlt).

Vielleicht kommst du mit diesen Tips ja selbst drauf. Ansonsten kann ich dir gerne nochmal weiterhelfen.
 

Zurück
Oben