Hi,
folgende Aufgabe:
Erstellen einer Methode, die aus einem String alle Wörter der Länge 7, die nicht mit einem Vokal beginnen, als String-Array zurückgibt.
Meine Methode funktioniert gut, außer wenn das Wort am Satzanfang steht. Es nimmt aber immer das Leerzeichen vor dem Wort mit rein..
wenn ich aber aus [^aeiouAEIOU]\\w{7} -> [^aeiouAEIOU]\\w{6} mache, dann fehlt der letzte Buchstabe. Jemand ne Idee wie ich den RegEx umschreiben kann?
DANKEE
folgende Aufgabe:
Erstellen einer Methode, die aus einem String alle Wörter der Länge 7, die nicht mit einem Vokal beginnen, als String-Array zurückgibt.
Meine Methode funktioniert gut, außer wenn das Wort am Satzanfang steht. Es nimmt aber immer das Leerzeichen vor dem Wort mit rein..
wenn ich aber aus [^aeiouAEIOU]\\w{7} -> [^aeiouAEIOU]\\w{6} mache, dann fehlt der letzte Buchstabe. Jemand ne Idee wie ich den RegEx umschreiben kann?
Code:
public static String [] extractWords (String text) {
String pattern = "[^aeiouAEIOU]\\w{7}";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(text);
//erforderte Größe des Arrays berechnen
int hochzaehlen = 0;
while (m.find()) {
hochzaehlen++;
}
m.reset();
//Array fuellen
String[] array = new String[hochzaehlen];
int index = 0;
while (m.find()) {
array[index] = m.group();
index++;
}
return array;
}
//Test in main
public static void main(String[] args) {
String text1 = "Bayerin aha. Die Worte Bayerin oder Ecuador haben sieben Stellen";
String [] woerter = extractWords(text1);
for (String b : woerter) {
System.out.println(b);
}
DANKEE