Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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?

Naja mit deiner Schleife biste doch schon auf dem richtigem Weg, das einzige was du nun noch machen musst ist, solange es kein Leerzeichen ist, das Zeichen dem StringBuilder hinzufügen.

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 ;)

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(" ", "");

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

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



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));

}

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.