CSV einlesen, Spalte überspringen

OnDemand

Top Contributor
Hallo zusammen,

hab folgendes Problem, kann mir da jemand bitte helfen?

Ich lese eine CSV ein mit 45 Spalte, berechne in einer Spalte etwas und speicher es ab.
Klappt auch alles soweit, nur das Problem ist, in der CSV wir Semikolon als Spaltentrenner genutzt, in einigen Werten aus Spalte 20 zb wird aber das Semikolon für html genutzt um zb ä für das kleine "ä" zu machen. Wenn ich die Spalte nun einlese, splittet es natürlich an den falschen Stellen.

Kann man in der While-Schleife irgendwie einbringen, dass er diese Spalte ignorieren soll? HAb schon mir .replaceAll() gearbeitet aber das hat auch nicht geklappt

Meine bisherige Schleife:
Java:
		String line;
		while ((line = reader.readLine()) != null) {
			String[] parts = line.split(SEPERATOR);

						
			double value = Double.parseDouble(parts[9]);

			
			if (value <= 14.99) {
				berechneterPreis = value * 2.2;

			} else if (value > 15.00 && value <= 29.99) {
				berechneterPreis = value *1.85;

			} else if (value > 30.00 && value <= 49.99) {
				berechneterPreis = value *1.75;

			} else if (value > 50.00) {
				berechneterPreis = value * 1.7;

			}
			String output = (
					  AF + "XTSOL"  + AF + ";"
					+ AF + parts[1] + AF + ";"
					+ AF + parts[2] + AF + ";"
					+ AF + parts[3] + AF + ";"
					+ AF + parts[4] + AF + ";"
					+ AF + parts[5] + AF + ";"
					+ AF + parts[6] + AF + ";"
					+ AF + parts[7] + AF + ";"
					+ AF + parts[8] + AF + ";"
					+ AF + berechneterPreis + AF + ";"
					+ AF + parts[10] + AF + ";"
					+ AF + parts[11] + AF + ";"
					+ AF + parts[12] + AF + ";"
					+ AF + parts[13] + AF + ";"
					+ AF + parts[14] + AF + ";"
					+ AF + parts[15] + AF + ";"
					+ AF + parts[16] + AF + ";"
					+ AF + parts[17] + AF + ";"
					+ AF + parts[18] + AF + ";"
					+ AF + parts[19] + AF + ";"
					+ AF + parts[20] + AF + ";"
					+ AF + parts[21] + AF + ";"
					+ AF + parts[22] + AF + ";"
					+ AF + parts[23] + AF + ";"
					+ AF + parts[24] + AF + ";"
					+ AF + parts[25] + AF + ";"
					+ AF + parts[26] + AF + ";"
					+ AF + parts[27] + AF + ";"
					+ AF + parts[28] + AF + ";"
					+ AF + parts[29] + AF + ";"
					+ AF + parts[30] + AF + ";"
					+ AF + parts[31] + AF + ";"
					+ AF + "" + AF + ";" //englisch leer
					+ AF + "" + AF + ";"
					+ AF + parts[34] + AF + ";"
					+ AF + parts[35] + AF + ";"
					+ AF + parts[36] + AF + ";"
					+ AF + parts[37] + AF + ";"
					+ AF + parts[38] + AF + ";"
					+ AF + parts[39] + AF + ";"
					+ AF + parts[40] + AF + ";"
					+ AF + parts[41] + AF + ";"
					+ AF + parts[42] + AF + ";"
					+ AF + parts[43] + AF + ";"
					+ AF + parts[44] + AF + ";"
					+ AF + parts[45] + AF  +";"  
					+ NEW_LINE);
		
			out.write(output);
		}

Freu mich, wenn jemand einen Tipp hat
 

Bqg_stylo

Mitglied
Hallo,
bevor du deine "line" in "parts[]" splittest musst du den String auf Html Sonderzeichen prüfen und ersetzen mit replaceAll().
Bestimmt gibt es schon ein Routine die das kann, ich habe aber mal eben eine eigene geschrieben die du nur noch erweitern musst.

in Zeile 3 einfügen:
Code:
line= ersetzeHtmlUmlaute(line);

und diese statische methode in deinerKlasse einfügen und mit den Sonderzeichen erweitern
Java:
	   public static String ersetzeHtmlUmlaute(String input){
		   if(input.contains("&ouml;")){
			   input = input.replaceAll("&ouml;", "ö");
		   	}
		   if(input.contains("&uuml;")){
			   input = input.replaceAll("&uuml;", "ü");
		   }
		   //hier fügst du weitere Bedingungen an je nachdem welche Sonderzeichen konvertiert werden sollen
		   return input;
	   }
 
Zuletzt bearbeitet:

OnDemand

Top Contributor
KLappt leider nicht :( wird nix ersetzt. Irgendwas stimmt noch nicht, vielleicht hängt es damit zusammen. Die Spalten werden korrekt geschrieben und auch gefüllt, aber hinter der letzten Spalte werden alle WErte wieder angezeigt. Irgendwas stimmt da noch nicht, kann mir jemand sagen, was da los ist?
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    46,5 KB · Aufrufe: 30

Bqg_stylo

Mitglied
Hast du die Methode um weitere Umlaute ergänzt? Ich habe ja nur das ü und ö eingebaut den Rest solltest du schon selber machen! So wie ich das sehe ist das nicht der Fall.

Des weiteren formuliere bitte dein Problem genauer! Aus der Grafik werde ich leider nicht schlau!
 

OnDemand

Top Contributor
Hi, klar hab ich die Umlaute ergänzt. :) irgendwas scheint mit meiner schleife nicht zu stimmen, hinter die letzte Spalte werden alle Werte nochmal in die Datei geschrieben, obwohl hinter der gelben Markierung im Bild Schluss sein müsste
Viele Grüße
Nico
 

Neue Themen


Oben