cable545 Geschrieben 23. November 2009 Geschrieben 23. November 2009 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? Zitieren
elSusto Geschrieben 23. November 2009 Geschrieben 23. November 2009 (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 23. November 2009 von elSusto - 1 vergessen xD Zitieren
LadyPreis Geschrieben 23. November 2009 Geschrieben 23. November 2009 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: Zitieren
cable545 Geschrieben 23. November 2009 Autor Geschrieben 23. November 2009 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" ;) Zitieren
Haschman Geschrieben 23. November 2009 Geschrieben 23. November 2009 Der Denkfehler ist, das java.lang.String.trim() nur führende und am ende des Strings vorhanden Leerzeichen löscht. Zitieren
LadyPreis Geschrieben 23. November 2009 Geschrieben 23. November 2009 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 Alternativ ließe es sich dann aber über ein "replaceAll" machen. (Wenn das jetzt auch nicht stimmt, bin ich für heute ruhig :bimei) Zitieren
speedi Geschrieben 23. November 2009 Geschrieben 23. November 2009 (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 23. November 2009 von speedi Zitieren
Haschman Geschrieben 23. November 2009 Geschrieben 23. November 2009 dann hatte ich was Falsches in Erinnerung. Kann ja mal passieren, wenn man keine IDE zur Hand hat 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 Zitieren
Empfohlene Beiträge
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.