Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich versuche gerade ein Textfeld auszulesen und dann die einzelnen Zeilen auszulesen. Ich möchte aber nicht, dass Zeilen wo nur ein Zeilenumbruch oder nichts drin steht, in dem Array sind.
Zwar steht null für "nichts", aber wenn du werte (ich nehme an, es ist ein normales Array?) ein null zuweist, verschwindet der Eintrag selbst ja nicht. Das Array wird an der Stelle i den Wert null haben, und das wird früher oder später zu Problemen führen.
Wenn du mit split-Arbeiten möchtest, dann wird der Aufwand, alle leeren Zeilen wieder zu entfernen, recht hoch sein. Die bessere Alternative wäre, bereits beim Laden des Textes alle leeren Zeilen auszulassen. Eine sehr einfache Möglichkeit: du könntest erstmal alle "\n\n" durch "\n" ersetzen und DANN split benutzen. Dafür gibt es die String.replace()-Methode. Diese müsstest du aber ggf. mehrmals durchlaufen lassen, da Sachen wie "\n\n\n\n" zu "\n\n" umgewandelt werden. In etwa so:
also möchtest du einfach ein array haben,dass alle zeilen enthält?
dann kannst du doch einfach zeilenweise einlesen,wie du es bereits gemacht hast, und diese deinem ArrayList hinzufügen?
verstehe das problem gerade nicht wirklich,erst will er die umbrüche raus haben,dann doch nicht
also möchtest du einfach ein array haben,dass alle zeilen enthält?
dann kannst du doch einfach zeilenweise einlesen,wie du es bereits gemacht hast, und diese deinem ArrayList hinzufügen?
verstehe das problem gerade nicht wirklich,erst will er die umbrüche raus haben,dann doch nicht
Er möchte einfach alle nichtleeren Zeilen in sein Array packen. Ja, eine Möglichkeit wäre es, dies zeilenweise einzulesen und die leeren Zeilen auszulassen - ich habe aber eine Möglichkeit aufgeschrieben, damit er bei "split" bleiben kann.
@Pixel - ja, du hast vergessen aufzuschreiben, was genau bei dir nicht klappt
Dein Problem lässt sich auch mit regulären Ausdrücken (Regex) lösen. Dazu splittest Du zunächst den Text an den Zeilenumbrüchen (wie gehabt). Danach gehst Du jedes Element im Array durch und schaust, ob sich in den jeweiligen Zeilen überhaupt ein Zeichen befindet, welches nicht zum Leerraum gehört. Ist das der Fall, so fügst du die Zeile einer Liste aus Strings hinzu. In dieser Liste befindet sich dann am Ende deine gesuchte Ergebnismenge.
Ich kann so nicht sagen, woran es liegt. Ich würde an deiner Stelle einfach ein paar Debug-Ausgaben machen. Zum Beispiel "textOfTextare" VOR und NACH der Schleife jeweils ausgeben lassen. Oder den werte-Array nach split durchlaufen und alle Elemente ausgeben lassen. In meinem Beispiel klappte nämlich alles..
Wenn du wirklich aus deinem fertigen Array alle Werte entfernen möchtest, wird's etwas aufwendiger. Du musst auf jeden Fall ein neues Array anlegen und alle nichtleeren Zeilen kopieren.
Oder du nutzt wie vorgeschlagen eine ArrayList - das erspart dir ebenfalls eine Menge Arbeit.
Okay werde ich wohl hin bekommen. Viele dank, ist nen nettes Forum hier.
Hätte ich das in nem PHP Forum gefragt hätte ich wahrscheinlich mit dem Verweis aufs Handbuch eins auf die Mütze bekommen.
(Mit PHP wäre das aber auch nen 3 Zeiler )
okay. da gibts es mehrere wege zur lösung.du kannst es wie darekkay mit replace machen, oder direkt mit regex arbeiten.
ich für meinen teil würde es entweder wie darekkay machen,oder den string zeilenweise in eine dummy variable einlesen und in einer if abfrage diese mit dummy.equals("") vergleichen. dann einfach dementsprechend in die arraylist einfügen,bzw zur nächsten zeile springen.
Es ist die Frage, ob das ein Problem ist. Eine Leerzeile bedeutet, dass nur \n drin steht. Es ist eine Definitionsfrage, ob auch Zeilen ohne Inhalt als "leere Zeilen" angesehen werden sollen. Falls ja, muss man das ganze natürlich anpassen. Mit einfachem trim müsste man aber auch das Problem ohne Regex lösen können.
Mit this wird auf die aktuelle Instanz der Klasse zugegriffen. Wenn es eine Klasse ist, bei der kein Objekt/keine Instanz erzeugt wird, solltest du das this weglassen.