Ich möchte in einem Programm Strings z.B. mit den Methoden split und trim bearbeiten. In die Strings habe ich vorher zum Teil im Code selbst Leerzeichen eingefügt (z.B. myString += " "; )
Die Methode myString.trim() macht aber gar nichts, und myString.split(" ") funktioniert nicht richtig, wenn der String mit einem Leerzeichen beginnt. Das resultierende String-Array enthält dann als erstes Element einen leeren String. Ein Leerzeichen am Ende wird aber korrekterweise ignoriert. In der Java-Api steht auch: "Trailing empty strings are therefore not included in the resulting array." Aber eben anscheinend nur TRAILING empty strings, also am Ende und nicht am Anfang.
Jenenfalls wollte ich das mit trim() umgehen, aber das geht ja anscheinend auch nicht! Ich kann mich erinnern, dass es früher mal ging. Kann das am Zeichensatz liegen? Denn wenn ich als Argument für split "\s" eingebe, um ALLE Whitespaces als Trennzeichen zu akzeptieren, dann meint der Compiler, das wär ein "illegal escape character". Wie macht man so was richtig??
Java: Probleme mit String.trim() und String.split(String)
-
-
-
schreib mal was du genau mit dem string machen willst, das der "compiler" \s als illegalen escape char ansieht hatte ich auch, ka wieso.
david
-
Zitat von a9bejo
wofür ist denn eigentlich das + in str.split("\\s+")?
ich habs nochmal so probiert wie dus gemacht hast. erstaunlicherweise ist es ein unterschied, ob manoder
schreibt. letztere ist ja die variante, wie du sie auch verwendet hast. aber funktioniert die erste bei dir?
-
Zitat von derbrain
wofür ist denn eigentlich das + in str.split("\\s+")?
die methode String.split(String) erwartet eine Regular Expression, und + heisst in einer RE: 'das vorige zeichen kommt mindestens einmal oder öfter vor'. D.h ohne das + würde der string "a b" in "a" und " b" aufgesplittet werden, mit dem + in "a" und "b".
Zitat von derbrainMethoden können immer entweder den zustand ihres objekts selbst verändern (dass nennt man dann 'descructive method', weil der alte zustand zerstört wird), oder sie erzeugen ein neues objekt, verändern dessen zustand und geben es dann als Rückgabewert zurück. Letzteres kommt in Java öfter vor.
Die Methode trim() ist z.b nicht destruktiv, d.h Du must schreiben:
-
-
Zitat von lerod
Hallo lerod!
Wo steht denn, das es so nicht funktionieren sollte?
Bei mir klappt das ganz wunderbar! -
oh sry, irgendwie dürft i da heut morgen was falsch aufgefaßt haben - hätt mich auch gewundert, wenns ned funktionieren hätt sollen.
lg -
Quote:
for(String word : words){
System.out.println("Word: |"+word+"|");
}
kann man diese "for"-schleife (glaube das ist es) auch anders schreiben? wenn ja wie?
thx for reply, bin neu hier:) -
ja kann man. das hängt jedoch davon ab um was es sich sich bei words handelt.
ist words ein Array so könntest du schreiben:ist words eine ArrayList so könntest du schreiben:
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!