Java Buchstabe im Wort?

3 Antworten

Das "Problem" ist, dass die normale Zeichensuche normalerweise immer nur das erste Vorkommen ermittelt. Da müsstest Du also sowas machen wie

  1. Suche erstes Vorkommen
  2. Merke Index und erhöhe Zähler um 1
  3. Schneide vom Anfang alles bis inkl. Fundposition ab
  4. 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

triopasi  28.01.2019, 17:35

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?

0
ohwehohach  28.01.2019, 21:30
@triopasi

ich sehe da auch kein Problem. Ich habe nur verschiedene Lösungswege aufgezeigt.

1

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.

zelosim 
Fragesteller
 28.01.2019, 17:12

Die Positionen

0
jort93  28.01.2019, 17:13
@zelosim

Dann kannst du die positionen die du rausfindest ja einfach in einen string schreiben und den ausgeben am ende.

0

For-schleife mit i von 0 bis Länge(wort) - 1

{

If(wort[i] == buchstabe) Ausgabe("Stelle " + i)

}

Ganz einfach.

Woher ich das weiß:Studium / Ausbildung – Informatikstudium