Leerzeiilen aus ArrayList löschen?!

Kumaro

Mitglied
Hi Leute, ich hab mich schon dumm und dämlich gesucht doch leider bisher nichts finden können :(. Mein Problem ist folgendes:
Ich habe eine htmlCode eingelesen:
BSP:
Java:
  <tr>
                    <td>
                        2011-10-31 17:19:15.0
                    </td>
                    <td align="center">
                        29.0
                    </td>
                </tr>
            
                <tr>
                    <td>
                        2011-10-31 17:22:14.0
                    </td>
                    <td align="center">
                        28.0
                    </td>
                </tr>

Daraus entferne ich jetzt alle html Zeichen mit:

Java:
String string1 = htmlCodeData.replaceAll("\\<.*?\\>", "");

das funktioniert somit alles ganz gut. Dann splitte ich den Code bei " " (leerzeichen) und speicher die einzelnen splits in eine ArrayListe:

Java:
String split[] = string1.split(" ");
		ArrayList<String> list = new ArrayList<String>();
		
		for(int i=0; i < split.length; i++){
			list.add(split[i]);
		}

Jetzt habe ich folgendes Schema in der Liste: (viele elemente sind leerzeilen oder leerzeichen ich weiß leider nicht genau?) und in anderen elementen stehen die Datumangaben und werte.

Jetzt würde ich gerne alle elemente aus der ArrayList löschen die kein Datum oder Wert enthalten --> also ein leerzeichen oder eine leerzeile (Leerstring) enthalten so dass ich dann nur noch die wichtigen daten in der arrayList habe.

Java:
for(int j=0; j < list.size(); j++){
			if(list.get(j).equals(" ")) {
				list.remove(j);
			}
		}
		for(int k=0; k < list.size(); k++){
		System.out.println(list.get(k));
		}

Doch wenn ich das dann ausgebe ist alles unverändert... ich habe es auch schon statt dem " " mit "\n" probiert doch leider zeigt das auch keine wirkung... was mach ich falsch****?

Ich hoffe dringend auf eure Hilfe!

Vielen Dank im Voraus


PS: Oder hat viell jmd eine effektivere Lösung wie ich die Daten extrahieren kann********
 
Zuletzt bearbeitet:
Ich würde hier sowas versuchen :
Java:
if(split[i].trim().equals(""))
	continue;
else
	list.add(split[i]);
verwenden um schon VOR dem adden alle Whitespaces zu entfernen.
Alternativ würde das auch noch mit RegEx ganz gut klappen.
 
Hi danke schonmal für deine Antwort. ich hab das mal so eingebaut ...aber es scheint nicht zu funktionieren:
Code:
		String split[] = string1.split(" ");
		ArrayList<String> list = new ArrayList<String>();
		
		for(int i=0; i < split.length; i++){
			if(split[i].trim().equals(" "))
				continue;
			else			
			list.add(split[i]);
		}

Die Ausgabe sieht immer noch so aus:

"


2011-10-31
20:49:13.0




10.0



"
:(
 
Du solltest vielleicht mal Copy&Paste machen ... oder genau hinsehen ...

Ich habe auch NICHT " " geschrieben ... sondern nur ""

Wenn du mit trim() alle Whitespaces entfernst ... und dann überprüfst ob ein String ob er ein Leerzeichen enthält ... dass das FALSE ergibt sollte eigentlich klar sein.
 
Oh, klar sorry^^
hab jetzt


Java:
if(!split[i].trim().equals("") ){

genommen da sieht die Ausgabe immerhin schon so aus:

"
2011-10-31
21:43:13.0

0.0

2011-10-31
21:46:14.0

0.0
"

Wie bekomm ich die kompletten leerzeilen raus?

hab schon

Java:
if(!split[i].trim().equals("") && !split[i].trim().equals("\n")){

probiert aber leider ohne erfolg.
 
Hab die Lösung gefunden. So funktioniert es:

Java:
String string1 = htmlCodeData.replaceAll("\\<.*?\\>", "");    //ENTFERNT HTML CODE!
		
		String split[] = string1.split(" ");
		ArrayList<String> list = new ArrayList<String>();
		
		for(int i=0; i < split.length; i++){
			if(!split[i].trim().equals("")){   //entfernt alle leerzeichen vor und hinter dem String
				list.add(split[i].trim());	   // entfernt die Absätze (\n) hinter den strings
			}
			
		}
	
		for(int k=0; k < list.size(); k++){
		System.out.println(list.get(k));
		}

Vielen Dank für deine Hilfe :)
 
@kumaro: Du bist länger als ich angemeldet...da kann es doch nicht so schwer sein, nach ner halbe Stunde lesen von Spikees Post auf den Button zu drücken?

@Spikee: Die User schaffen das Generell nicht mehr...
(kumaro: Nicht auf dich bezogen, sondern Allgemein).
Ich glaub, 80% von deinen Erledigt-Button-Hinweisen drücke ich :suspekt:
 
Zurück