Zum Inhalt springen

blanks in ein String einfügen


Empfohlene Beiträge

Geschrieben

hallo,

ich habe folgende aufgabe zu lösen. ich soll eine methode schreiben welche einen string übergeben bekommt und dann zwischen jedes zeichen von diesem string ein blank einfügt. nach dem letzten zeichen des strings soll allerdings kein blank eingefügt werden. und es soll laut aufgabenstellung keine if-anweisung im rumpf der schleife stehen. das ist wahrscheinlich auch mein problem. denn wenn die methode einen string bekommt welcher schon blanks enthält, soll ja an diesen stellen kein blank mehr rein. bisher sieht das ganze so bei mir aus


static public String blanksRein(String s) {

   StringBuilder mitBlank=new StringBuilder();


   for(int i=0;i<s.length();i++) {


     mitBlank.append(s.charAt(i));

     mitBlank.append(' ');

     }// for schleife


       return mitBlank.toString();

}//blanksRein



heir wird halt einfach abwechselnd immer ein zeichen des strings und ein blank in das string Builder objekt geschrieben. kann mir hier jemand helfen?

Geschrieben (bearbeitet)

static public String blanksRein(String s) {

   StringBuilder mitBlank=new StringBuilder();


   for(int i=0;i<s.length() - 1;i++) {


     mitBlank.append(s.charAt(i));

     mitBlank.append(' ');

     }// for schleife

     mitBlank.append(s.charAt(s.length() - 1));

       return mitBlank.toString();

}//blanksRein

so hast du kein blank am ende ;)

Bearbeitet von elSusto
- 1 vergessen xD
Geschrieben

finde die Aufgabenstellung etwas komisch, aber nunja.

Eine möglichkeit wäre, mittels "trim" erstmal bereits vorhandene Leerzeichen zu entfernen.

Dann kannst du nach deinem Schema nach jedem Zeichen einen Blank setzen (in einer Schleife).

Nach dem Schleifenbody entfernst du einfach das letzte zeichen des Strings, da dieses ja nun zwangsläufig ein Blank ist

EDIT: zu langsam :schlaf:

Geschrieben

mmhhh "trim" funktioniert bei mir irgendwie nicht. was macht denn trim? wird von dem string ne kopie erstellt und dann alle blanks entfernt und dieser string dann zurückgegeben?

dann müsste ich das ja so schreiben

String r=s.trim();

mmhh versteh ich nich so richtig. ach so, ich find die aufgabenstellung auch blöd, aber die kommt von meinem prof. ein zitat von ihm zu dieser aufgabe:"vermeiden sie es, sich "mit einem if-regenschirm unter einer schleifen-dusche zu stellen" :D;)

Geschrieben
Der Denkfehler ist, das java.lang.String.trim() nur führende und am ende des Strings vorhanden Leerzeichen löscht.

dann hatte ich was Falsches in Erinnerung. Kann ja mal passieren, wenn man keine IDE zur Hand hat :P

Alternativ ließe es sich dann aber über ein "replaceAll" machen.

(Wenn das jetzt auch nicht stimmt, bin ich für heute ruhig :bimei)

Geschrieben (bearbeitet)

1. Nimm deine Methode die du letzte Woche gemacht hast und entferne alle Leerzeichen aus dem String (Alternativ, falls du darfst- s.replace())

2. Geh mit einer Schleife alle chars außerde den letzten (s.length-2) und füge diese dann mit zusätzlichem Leerzeichen in einen neuen String ein.

3. kopiere den letzten char(s.length-1) auch noch mit dazu.

4. Das war jetzt bereits deine 3. Frage in bezug auf recht einfache String Anwendungen. Ich denke mal dein Ausbilder/Lehrer/WasAuchImmer will dir damit lernen wie du selbst Lösungen erarbeiten kannst. Foren können teilweise ganz gute Quellen sein, aber versuch vielleicht auch mal bisschen intensiver selbst auf die Lösung zu kommen.

Bearbeitet von speedi
Geschrieben
dann hatte ich was Falsches in Erinnerung. Kann ja mal passieren, wenn man keine IDE zur Hand hat :P

Alternativ ließe es sich dann aber über ein "replaceAll" machen.

(Wenn das jetzt auch nicht stimmt, bin ich für heute ruhig :bimei)

Replace all ist richtig ;)

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...