Java Buchstabe im Wort?
Hey,
ich will ein Programm programmieren , wo der Nutzer ein Wort und den Buchstaben den er suchen will eingeben kann .
Das Programm soll wiedergeben an welchen Stellen sich dieser Buchstabe befindet
Also zb.
Wort:Hallo
Buchstabe : l
➡️Antwort wäre dann 3&4
Hab schon ein Ansatz nur weis ich nicht wie ich das machen soll , das nach einem beliebigen Buchstabe gesucht wird und die Häufigkeit angegeben wird
3 Antworten
Das "Problem" ist, dass die normale Zeichensuche normalerweise immer nur das erste Vorkommen ermittelt. Da müsstest Du also sowas machen wie
- Suche erstes Vorkommen
- Merke Index und erhöhe Zähler um 1
- Schneide vom Anfang alles bis inkl. Fundposition ab
- Wenn noch Zeichen übrig sind -> gehe zu 1
Du kannst auch von vorne nach hinten durch den String laufen und das jeweils aktuelle Zeichen betrachten. Das geht natürlich auch. Nachteil dabei ist, dass Du halt immer den Aufwand für eine komplette lineare Suche hast, auch wenn 0 Matches vorkommen.
Einfacher wirds mit der Regular-Expression-Suche. Lass Dir einen Matcher liefern. Durchlaufe mit diesem alle Matches und Du bekommst die gewünschten Informationen.
http://www.vogella.com/tutorials/JavaRegularExpressions/article.html
ich sehe da auch kein Problem. Ich habe nur verschiedene Lösungswege aufgezeigt.
Willst du die häufigkeit wiedergeben oder die positionen?
Ich würde eine schleife durchlaufen und mit String.charAt schauen wo jeweils die buchstaben sind.
For-schleife mit i von 0 bis Länge(wort) - 1
{
If(wort[i] == buchstabe) Ausgabe("Stelle " + i)
}
Ganz einfach.
Ich sehe da kein Problem. Soetwas ist doch in 30 Sekunden selbst implementiert.
Und mit linerarer Leifzeit ist doch perfekt. Bei den kleinen Eingaben würdest du auch n^2 oder n^3 oder mehr nicht merken.
PS: Was meinst du wie Contains(char) und IndexOf(char) etc implementiert sind?