Zum Inhalt springen

bestimmtes zeichen aus einem string entfernen


Empfohlene Beiträge

Geschrieben

hallo,

ich möchte eine methode schreiben welche einen blank, oder jeden anderen char wert auf den man lust hat, aus einem string entfernt. in meinem fall bekommt meine methode ein string übergeben und ich möchte daraus alle blanks entfernen und das ergebnis zurück geben. wichtig dabei ist, dass die funktionen replace oder replaceall nicht genutzt werden sollen.

normalerweise sollte das nicht so schwer sein, aber in meinem fall... steh ich mal wieder aufn schlauch. bisher sieht das bei mir so aus

static public String blanksRaus(String s) {

      StringBuilder ohneBlank=new StringBuilder();



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

        if(s.charAt(i)==' ') {



	 } // if




      } // for




	  return ohneBlank.toString();

   }//blanksRaus

hat von euch jemand einen tip?

Geschrieben

Oder eben umgekehrt, immer wenn ein zu ersetzendes Zeichen auftritt die Position merken und den String anhand dieser Teilstücke zusammen basteln, die Lösung von Dragon8 ist natürlich einfacher und damit besser, hatte irgendwie trotzdem diesen Weg im Kopf, muss an der Uhrzeit liegen ;)

Geschrieben

StringBuilder wäre eine Möglichkeit. Du kannst es aber auch über einen String machen an den du einfach immer mehr chars anhängst, wenn sie nicht dem Filterzeichen entsprechen (dürfte aber langsamer sein). Oder du zählst vorher einmal durch, wie viele chars ohne das gesuchte Zeichen im String sind, legst dir ein Char array von genau der größe an und legst dann die chars dort rein. String bietet einen Konstruktor um aus einem Char-Array einen String zu machen.

Oder du benutzt einfach die methode myString.replace(" ", "");

Geschrieben

ok, hab es so gemacht


static public String blanksRaus(String s) {

      StringBuilder ohneBlank=new StringBuilder();



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

        if(s.charAt(i)==' ') ohneBlank.append("");

        else ohneBlank.append(s.charAt(i));

      } // for


      return ohneBlank.toString();


}//blanksRaus

vielen dank für die tips

Geschrieben
StringBuilder wäre eine Möglichkeit. Du kannst es aber auch über einen String machen an den du einfach immer mehr chars anhängst, wenn sie nicht dem Filterzeichen entsprechen (dürfte aber langsamer sein).

:mod:Dir ist aber schon klar, das die Speicherauslasstung mit deiner Lösung in die Höhe getrieben wird.

Es spielt in diesem Beispiele nicht eine so große Rolle (wenn man mal von den Prinziepen einer guten Software absieht), aber man sollte immer wenn man Strings zusammenfügt (außer bei Ausgaben) den StringBuilder benutzen.

Du kannst es auch so machen:



static public String blanksRaus(String s) {


      StringBuilder ohneBlank=new StringBuilder();


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

        if(s.charAt(i)!=' ') ohneBlank.append( s.charAt(i) );

      } // for


      return ohneBlank.toString();


}//blanksRaus



Geschrieben
ok, hab es so gemacht


static public String blanksRaus(String s) {

      StringBuilder ohneBlank=new StringBuilder();



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

        if(s.charAt(i)==' ') ohneBlank.append("");

        else ohneBlank.append(s.charAt(i));

      } // for


      return ohneBlank.toString();


}//blanksRaus

vielen dank für die tips
öhm... lass doch den "if" teil weg und geh gleich zum else. Oder verwende eine != abfrage. ohneBlank.append("") fügt nämlich nur einen leeren String dazu. 0 Chars. Besser:

if(s.charAt(i)!=' '){

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

}

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...