Aufeinander folgende Leerzeichen ersetzen durch eine

JavaScala-An

Mitglied
Komm bei einer Übungsaufgabe nicht weiter
Aufgabe (String-Operationen). Fuer einen String s stehen in Scala folgende Methoden1 zur Verfuegung:
1- s(0) ... liefert das erste Zeichen des Strings, z.B. "Hallo"(0) liefert den Character H,
2 -s.substring(1) ... liefert den String ohne das erste Zeichen, z.B. "Hallo".substring(1) liefert
den String allo.
Implementieren Sie
(a) eine Funktion deleteSpaces(s:String):String, die aufeinanderfolgende Leerzeichen durch ein
Leerzeichen ersetzt.
Beispiel: deleteSpaces("praktische_ _ _Informatik_ _1") = "praktische_Informatik_1".

das hab ich bis jetzt: def deleteSpaces(s:String):String = {
if (s == "") ""
else if (s == "_+") "_" + deleteSpaces(s.substring(0)) else s
}

ich hab das schon gegoogelt, aber hab nur lösungen mit replaceAll(" +", " ") gefunden. hat jemand paar tipps?

danke im vorraus
 

Thallius

Top Contributor
Das ist doch recht einfach.

Du nimmst mit (0) das erste Zeichen und steckst es in einen neuen String und merkst dir das Zeichen. Dann nimmst du mit Substring() den Rest als neuen String. Dann nimmst du wieder das erste Zeichen. War das vorherige gemerkte Zeichen ein Leerzeichen und das neue ist auch ein Leerzeichen, dann ignorierst du dieses Zeichen. Ansonsten hängst du es an den neuen String dran. Dann nimmst du wieder mit substring() den Rest. Das ganze halt in einer Schleife bis du am Ende des Strings angekommen bist.

Viel Spaß beim programmieren

Claus
 
Zuletzt bearbeitet:

Neue Themen


Oben