Wie kann eine Java-Methode aussehen, die die vorstehenden Zahlen in einem String entfernt?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Hallo, also wenn du das mit indexOf lösen willst, dann erhältst du ja den Index des ersten Leerzeichen. Anschließend lässt du dir einfach den substring von diesem Index bis zum Ende geben:

String s = "1700 Hallo - Apfel";
int index = s.indexOf(" ");
s = s.substring(index+1); // index + 1, da der index das
                          // Leerzeichen ist und du aber 
                          // nach dem Leerzeichen weiter willst

substring(beginIndex) liefert also alles ab dem Index.

Woher ich das weiß:Studium / Ausbildung – Informatik-Studium / Mathematik-Studium / ITK-Ausbildung
Paxis 
Fragesteller
 09.03.2020, 17:11

Alles klar, danke dir.

1
SirNik  09.03.2020, 17:15

Wenn du weißt, dass nur am Anfang Zahlen und Leerzeichen sind, dann kannst du auch mit replaceAll und Regex einfach ersetzen:

String s = "1700 Hallo - Apfel";
s = s.replaceAll("[0-9]+ ", ""); // Mindestens eine Ziffer (oder mehr) 
                                 // gefolgt von einem Leerzeichen
                                 // "weg machen"
1
Paxis 
Fragesteller
 09.03.2020, 17:36
@SirNik

ok probier ich mal, ist natürlich kürzer

0
Paxis 
Fragesteller
 09.03.2020, 17:42
@SirNik

nein Moment, alle Lehrzeichen soll er nicht entfernen, nur das am Anfang. Ich bleibe bei substring

0
SirNik  09.03.2020, 19:30
@Paxis

Es entfernt nicht alle Leerzeichen. Es entfernt nur die Stelle, bei der Verschieden viele Ziffern gefolgt von einem Leerzeichen sind.

Im Beispiel: "1700 Hallo45 - Apfel" würde mit "[0-9]+ " das "1700 " und sogar das "45 " entfernt.

Besser ist hier also der regex "^[0-9]+ ", der matcht Ziffern und Leerzeichen am Zeilenanfanf, also der würde nur "1700 " entfernen.

Regex sind ne ziemlich coole Sache, lohnt sich mal anzuschauen

1

Du könntest z.b. recursive prüfen, ob ein String mit einem Buchstaben beginnt,

wenn nicht, das erste Zeichen abschneiden und repeat.

Woher ich das weiß:Berufserfahrung – Java-Entwickler von Batch- und Webanwendungen
Paxis 
Fragesteller
 09.03.2020, 17:06

die Strings fangen alle mit Zahlen an, die entfernt werden sollen.

0
ZaoDaDong  09.03.2020, 17:07
@Paxis

Ja, das ist ja der Sinn der Methode.

Es wird so lange das erste Zeichen abgeschnitten, bis das ein Buchstabe ist...

0
Paxis 
Fragesteller
 09.03.2020, 17:09
@ZaoDaDong

achso meinst du das und mit welcher Methode?

0
ZaoDaDong  09.03.2020, 17:16
@Paxis

Hier eine funktionierende Testmethode:

public class Main
{

    public static void main(String[] args)
    {
        System.out.println(removeNon("35 Pitbull - Hey Baby"));

    }
    
    private static String removeNon(String string) {

        if(    Character.isDigit(string.charAt(0)) )
            return removeNon(string.substring(1));
        else
            return string.trim();
    

    }

}
1