Bearbeiten von Strings
-
Hi,
ich habe einen String, in dem sowohl Leerzeichen als auch Zeilenumbrüche vorhanden sind. Dieser wurde von einem FileReader eingelesen.
Nun möchte ich diesen String Zeichen für Zeichen in einen anderen String schreiben und dabei alle Leerzeichen und Zeilenumbrüche rausfiltern. Das habe ich bisher mit folgendem Code versucht:if (temp_string.substring(i, (i + 1)).equals(" ")) { //nix } else { str1 = str1 + temp_string.substring(i, (i + 1)); }
Das Programm filtert nun zwar alle Leerzeichen raus, allerdings bleiben die Zeilenumbrüche. Wie kann ich auch die noch beseitigen?
-
Zeilenumbrüche sind "\n" oder "\r\n".
-
Hm,
geht trotzdem nicht
-
Vielleicht macht die Methode "trim" aus String genau das, was du haben möchtest.
-
public final String filter(String string) { char[] buffer = new char[string.length()]; int j = 0; for (int i = 0; i < string.length(); ++i) { if (string.charAt(i) == 32 || string.charAt(i) == 10) continue; buffer[j++] = string.charAt(i); } return new String(buffer); }
Das is mir mal so spontan eigefallen.
-
Dein "break" sollte eher ein "continue" sein
-
Oh stimmt!
Ist mir garnicht aufgefallen !
-
spricht was gegen:
String.replaceAll(" |\r|\n", "")
-
Ja! Das ist doch viel zu einfach!
-
Hi,
erstmal besten Dank für die Lösungvorschläge. Ei einfaches Replace reicht leider nicht aus, da ich genau folgendes realisieren will:
Ich habe z:B. einen String
String str = " Test1 Test2 Test3 ";
Nun habe ich eine Funktion geschrieben, welche ein beliebiges Element (in dem Beispiel also "Test1", "Test2" oder "Test3") als Teilstring extrahieren soll. Also muss natürlich nacheinander jedes einzelne Zeichen geprüft werden um die Elemente voneinander abgrenzen zu können. Die extrahierten Elemente werden dann nacheinander in einen Vector gepackt.
Nun ist das Problem, dass nicht nur Leerzeichen und Zeilenumbrüche sondern auch Tabulator-Lücken zwischen den Elementen sein können.
Vielleicht kann mir ja noch jemand sagen, wie ein Tabulator codiert ist.
-
Nur mal, um sicher zu gehen:
Machst du das zur Übung oder weißt du nicht, dass es die Klasse StringTokenizer gibt?
-
Gregor schrieb:
Nur mal, um sicher zu gehen:
Machst du das zur Übung oder weißt du nicht, dass es die Klasse StringTokenizer gibt?
NEEEIIIINNN !!!!!
VERDAMMT, DAS GIBTS NICHT !!!Diese verdammte Klasse hab ich völlig vergessen
Die macht genau das was ich haben will !!Och man, jetzt wo meine eigene Funktion gerade funktioniert (Tabulatorzeichen hat in der Filterung noch gefehlt) bringst Du mich auf StringTokenizer.
Naja, wenn man keine Arbeit hat macht man sich halt welche
Danke nochmal für den Hinweis.