Java einen Satz in ein Array aus den einzelnen Wörtern umwandeln ohne Split-Methode?

1 Antwort

Ein einfaches Vorgehen wäre das schrittweise Abbauen des Strings via substring. Das immer nächste Vorkommen eines Leerzeichens ermittelst du via indexOf.

Pseudocode:

sentence = "Hello world, I am here!"
words = []

while indexOf(sentence, ' ') > -1:
  end = indexOf(sentence, ' ')
  word = substr(sentence, 0, end)

  if length(sentence) <= end + 1:
    break

  sentence = substr(sentence, end + 1)

  if word not empty:
    append(words, word)

if sentence not empty:
  append(words, sentence)  

Da die Anzahl an Wörtern anfangs unbekannt ist, wäre es einfacher, mit einer Liste zu arbeiten. Deren Elemente kann man später immer noch einem Array zuführen.

Es gibt noch einige andere Lösungswege. Beispielsweise könnte man durch jedes einzelne Zeichen des Satzes iterieren. So lange kein Leerzeichen auftaucht, werden die Zeichen gesammelt (bspw. mittels StringBuilder). Sobald ein Leerzeichen auftaucht oder der String komplett durchlaufen wurde, werden die aktuell gesammelten Zeichen zu einem String verbunden und einer Liste / einem Array angefügt. Leere Strings würde ich einmal wieder herausfiltern.


Thefr3akplaysYT 
Beitragsersteller
 21.11.2022, 20:26

Dürfen halt auch leider kein Substring benutzen.

regex9  21.11.2022, 20:33
@Thefr3akplaysYT

Das sehe ich nicht als problematisch an, denn wie schon geschrieben gibt es noch einige andere Lösungswege.

Zudem kann man sich mit den Grundbausteinen (Kontrollstrukturen, etc.) auch eine eigene substring-Methode implementieren.