Implementierung der Methode, um Wörter in einem Java-Array zu finden

Wie erstellt man in Java eine Methode, die alle Wörter aus einem String-Array zurückgibt, die mit einem bestimmten Anfangswert beginnen, wobei die Groß-/Kleinschreibung ignoriert wird? Wie kann dies mit regulären Ausdrücken oder einem Scanner-Objekt erreicht werden?

Uhr
Um die Methode zu implementieren die alle Wörter aus einem String-Array zurückgibt die mit einem bestimmten Anfangswert beginnen und dabei die Groß-/Kleinschreibung ignoriert, stehen verschiedene Ansätze zur Verfügung. Die Lösung kann mithilfe von regulären Ausdrücken oder einem Scanner-Objekt erreicht werden.

Variante 1: Verwendung von regulären Ausdrücken
So würde die Methode mit regulären Ausdrücken aussehen:
```java
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.ArrayList;

public class WordFinder {
public static String[] findWords(String text, String start) {
Pattern pattern = Pattern.compile("\\b" + start + "\\w*", Pattern.CASE_INSENSITIVE + Pattern.UNICODE_CHARACTER_CLASS);
Matcher matcher = pattern.matcher(text);
ArrayList<String> words = new ArrayList<>();
while (matcher.find()) {
words.add(matcher.group());
}
return words.toArray(new String[0]);
}
}
```
In diesem Beispiel wird ein regulärer Ausdruck verwendet um nach Wörtern zu suchen die mit dem gegebenen Startwert beginnen. Der Ausdruck \\b stellt eine Wortgrenze dar, gefolgt von dem gesuchten Startwert und beliebig vielen Wortzeichen. Der Ausdruck wird dann in einen Pattern-Objekt kompiliert und auf den Eingabetext angewendet. Die gefundenen Übereinstimmungen werden dann in ein String-Array gespeichert und zurückgegeben.

Variante 2: Verwendung des Scanner-Objekts
Alternativ kann die Methode ebenfalls mithilfe eines Scanner-Objekts implementiert werden. Hier ist ein Beispiel:
```java
import java.util.Scanner;
import java.util.ArrayList;

public class WordFinder {
public static String[] findWords(String text, String start) {
Scanner scanner = new Scanner(text);
ArrayList<String> words = new ArrayList<>();
while (scanner.hasNext()) {
String word = scanner.next();
if (word.toLowerCase().startsWith(start.toLowerCase())) {
words.add(word);
}
}
return words.toArray(new String[0]);
}
}
```
In diesem Beispiel wird der Eingabetext mit einem Scanner-Objekt gescannt und jedes gefundene Wort wird überprüft, ob es mit dem Startwert beginnt, obwohl dabei die Groß-/Kleinschreibung ignoriert wird. Gefundene Übereinstimmungen werden in einem String-Array gespeichert und zurückgegeben.

Beide Varianten erzielen das gewünschte Ergebnis, indem sie Wörter finden die mit dem gegebenen Startwert beginnen und dabei die Groß-/Kleinschreibung ignorieren. Die Wahl zwischen regulären Ausdrücken und einem Scanner-Objekt hängt von den individuellen Anforderungen und Präferenzen ab.






Anzeige