unerklärliches Verhalten von Scanner

temp_user

Mitglied
Hallo,
also ich habe ein Problem mit dem Scanner.

Fragestellung: Zwei Textdateien sollen zu einer CSV zusammengefügt werden und zwar immer so:

erste Zeile Datei1, erste Zeile Datei2(Ohne ID)
zweite Zeile Datei1, zweite Zeile Datei2(Ohne ID)
usw.

Es gibt noch ein paar Feinheiten dabei:
in einer Textdatei sind Nachkommastellen, wenn sie 0 sind abgeschnitten, dh nicht 5.0, sonder nur 5.
in dieser Textdatei sind auch keine Kommas vorhanden, in der anderen schon..

Das Ergebnis soll eine CSV File sein.
Es funktioniert grundsätlich, nur dass ich dann ab der 10. Zeile auf einmal 2 ',' hintereinander habe. Ich weiß nicht wo genau der Fehler liegt, aber igendwo wirds ne Kleinigkeit sein...
Die beiden Dateien habe ich hier abgelegt

Wenn jemand einen anderen Lösungsvorschlag hat, bin ich auch nicht abgeneigt, aber wärs dann super wenn er/sie es dann auch gleich programmiert, is ja nicht viel Arbeit(dieser Satz wird viel zu oft gesagt, trifft aber hier zu)


hier mal der Code:
Java:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;


public class CSVMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) 
	{
		System.out.println("Sers Wölt");

		File knoten = new File("C:\\knoten.txt");
		File deformation = new File("C:\\deformation.txt");
		String knotenString = "";
		String deformationString = "";
		String gesamtString = "";
		try {
			
			int knotenZähler = 0;
			int deformationZähler = 0;
			Scanner knotenScan = new Scanner(knoten);
			Scanner deformationScan = new Scanner(deformation);
			while(knotenScan.hasNext()&&knotenZähler/4 < 5000)
			{knotenZähler++;
				String temp = knotenScan.next();
				if(temp.endsWith("."))
					{
					temp=temp+"0";
					
					}
				if(temp.endsWith(".,"))
				{
						temp=temp.subSequence(0, temp.length()-1)+"0,";	
				}
				
				knotenString= knotenString+temp;
				if(knotenZähler%4 == 0)
					{
					knotenString = knotenString+",";
					
					}
				deformationZähler++;
				if(deformationZähler%4 ==0)
				{
					deformationString= deformationString+deformationScan.next()+";";
				}
				else
				{
					deformationString= deformationString+deformationScan.next()+",";
				}
				if(knotenZähler%4==0)
				{
					gesamtString +="\n"+ knotenString+deformationString.substring(2);
					knotenString="";
					deformationString = "";
					if((knotenZähler/4)%1000 ==0)System.out.println(knotenZähler/4+": "+gesamtString);
				
				}
			}
			
			System.out.println(gesamtString);
			try {
				FileWriter fw = new FileWriter("C:\\csv.csv");
				fw.write(gesamtString);
				fw.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println(knotenString);
		
	}

}
 

XHelp

Top Contributor
Vermutlich liegt es an Zeile 58.
Solange die Zahlen einstellig bleiben löscht er "x," komplett (2 Zeichen). Wenn die allerdings 2-stellig ("xy,") werden löscht er auch nur die ersten 2 Zeichen ("xy") und es bleibt ein Komma stehen
 

Michael...

Top Contributor
Wenn jemand einen anderen Lösungsvorschlag hat, bin ich auch nicht abgeneigt, aber wärs dann super wenn er/sie es dann auch gleich programmiert, is ja nicht viel Arbeit(dieser Satz wird viel zu oft gesagt, trifft aber hier zu)
War wirklich nicht viel Arbeit.

Warum schreibst Du die Zeilen nicht direkt wieder in die csv-Datei raus? Das ganze in einem String zu sammeln (dafür gibt's übrigens StringBuffer und StringBuilder) ist ganz schön aufwendig.

Java:
public static void main(String[] args) {
	File knoten = new File("C:\\knoten.txt");
	File deformation = new File("C:\\deformation.txt");
	File outputFile = new File("C:\\csv.csv");
	BufferedReader reader1, reader2;
	PrintWriter printer;
	try {
		reader1 = new BufferedReader(new FileReader(knoten));
		reader2 = new BufferedReader(new FileReader(deformation));
		printer = new PrintWriter(new FileWriter(outputFile));
		String tmp1, tmp2 = null;
		while((tmp1=reader1.readLine())!=null && (tmp2=reader2.readLine())!=null) {
			tmp1 = tmp1.trim().replaceAll("\\s+", "").replaceAll("\\.,", ".0,").replaceAll("\\.$", ".0");
			tmp2 = tmp2.trim().replaceAll("^\\d+\\s*", "").replaceAll("\\s+", ",").replaceAll("\\.,", ".0,").replaceAll("\\.$", ".0");
			printer.println(tmp1 + "," + tmp2);
		}
		if (tmp1!=null || (tmp2=reader2.readLine())!=null) {
			System.out.println("Fehler: Unterschiedliche Zeilenanzahl in den eingelesenen Dateien!");
			System.out.println(tmp1 + ": " + tmp2);
		}
			
		printer.close();
		reader1.close();
		reader2.close();
	}
	catch (Exception exc) {
		exc.printStackTrace();
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Developer_X Unerklärliches Problem Java Basics - Anfänger-Themen 8
R Datentypen Das Verhalten von Strings als Datentypen Java Basics - Anfänger-Themen 7
MarvinsDepression Operatoren Verhalten von BitShiftOperatoren Java Basics - Anfänger-Themen 2
G Merkwürdiges Verhalten der Maven IDE Java Basics - Anfänger-Themen 3
D Unerwartetes Verhalten bei Client Server Chat App Java Basics - Anfänger-Themen 12
B Programm beendet sich nicht und weiteres seltsames Verhalten Java Basics - Anfänger-Themen 9
G unklares Verhalten nach Instanzierung neuer Klasse Java Basics - Anfänger-Themen 3
MiMa Seltsames Verhalten im Konstruktor Java Basics - Anfänger-Themen 6
M Komisches Verhalten der Variablen Java Basics - Anfänger-Themen 6
K Klassen Eclipse Verhalten bei Klassen Java Basics - Anfänger-Themen 16
M Verhalten von LocalDateTime#getNano() Java Basics - Anfänger-Themen 1
T Objekte mit Verhalten Java Basics - Anfänger-Themen 14
D Klassen Verhalten von Klassenvererbung bei Variablen Java Basics - Anfänger-Themen 1
D Seltsames Verhalten... Java Basics - Anfänger-Themen 5
O JFileChooser Verhalten -Pfad Java Basics - Anfänger-Themen 15
S Verhalten von JTextField in einem JTabbedPane (Register) Java Basics - Anfänger-Themen 6
G Input/Output Verhalten BuffferedReader bei unvollständigen Zeichen Java Basics - Anfänger-Themen 1
D Interface für Verhalten von "=="? Java Basics - Anfänger-Themen 21
B Thread komisches Verhalten auf Mac ... Java Basics - Anfänger-Themen 6
B Komisches Verhalten von ArrayList Java Basics - Anfänger-Themen 6
S JInternalFrame in JInternalFrame - Verhalten Java Basics - Anfänger-Themen 2
F Nicht nachvollziehbares Verhalten Java Basics - Anfänger-Themen 7
K Komisches Verhalten beim erstellen einer Datei Java Basics - Anfänger-Themen 5
Ham Verhalten beim Initialisieren von Arrays Java Basics - Anfänger-Themen 16
D Komisches Verhalten einer For-Schleifen Java Basics - Anfänger-Themen 7
zilti Unlogisches Verhalten Java Basics - Anfänger-Themen 4
N public void und verhalten bei return Java Basics - Anfänger-Themen 2
A Seltsames Verhalten beim ButtonClick (ActionListener() ) Java Basics - Anfänger-Themen 7
P Komisches Verhalten von BufferedReader und readLine() Java Basics - Anfänger-Themen 2
O Variable Zimmergrößen per scanner einlesen Java Basics - Anfänger-Themen 5
A Buchstaben auslesen lassen vom Scanner Java Basics - Anfänger-Themen 18
J Barcode Scanner Java Basics - Anfänger-Themen 11
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
M Scanner Input mit if überprüfen Java Basics - Anfänger-Themen 5
D Scanner Java Basics - Anfänger-Themen 2
T scanner nicht erkannt Java Basics - Anfänger-Themen 3
T scanner eingaben erkennen und umtauschen Java Basics - Anfänger-Themen 4
Ostkreuz Int Scanner auf Enter Eingabe prüfen Java Basics - Anfänger-Themen 4
H Scanner nextLine() bringt Dateipfad Java Basics - Anfänger-Themen 1
Jul1n4tor Scanner error bei Eingabe die kein Integer ist Java Basics - Anfänger-Themen 4
Jul1n4tor Programm mit Scanner und If-Statements Java Basics - Anfänger-Themen 2
I Scanner Loop Java Basics - Anfänger-Themen 1
J Scanner cannot be resolved to a type Java Basics - Anfänger-Themen 3
C Scanner und If-Anweisung in Kombi Java Basics - Anfänger-Themen 3
X Erste Schritte Scanner eingabe wird übersprungen Java Basics - Anfänger-Themen 4
T j.u.Scanner(Sys.in).nextLine() wieder schließen? Java Basics - Anfänger-Themen 5
J Erste Schritte Scanner Java Basics - Anfänger-Themen 4
P Mit dem Scanner Klassen aufrufen Java Basics - Anfänger-Themen 3
javapingu Endlosschleife bei User Input mit try Scanner Java Basics - Anfänger-Themen 7
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
Poppigescorn Arrayliste Mittels Scanner erweitern Java Basics - Anfänger-Themen 6
Jan_x8 Timer/Scanner Java Basics - Anfänger-Themen 5
M Scanner Klasse Java Basics - Anfänger-Themen 4
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
F Erste Schritte java.util.Scanner: Beliebig langen Text per Paste in Console eingeben ? Java Basics - Anfänger-Themen 14
H Quellcode Scanner Klasse Java Basics - Anfänger-Themen 2
N java.util.InputMismatchException Fehler Java Scanner Java Basics - Anfänger-Themen 5
S Scanner soll Groß-/ Kleinschreibung ignorieren Java Basics - Anfänger-Themen 2
Y Wie kann ich Konsoleneingaben durch den Scanner mit JUnit 4 testen? Java Basics - Anfänger-Themen 1
J Scanner-Klasse Java Basics - Anfänger-Themen 2
B Scanner-If/else kleine Abhebungs-Simulation Java Basics - Anfänger-Themen 3
A Scanner Befehl Java Anfänger Java Basics - Anfänger-Themen 8
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2
G Scanner nutzen und Index auslesen Java Basics - Anfänger-Themen 8
N Problem mit Scanner Java Basics - Anfänger-Themen 2
V Ersätze für Java-Scanner Java Basics - Anfänger-Themen 9
P Methode die eigentlich einen Scanner benötigt mit toString() Java Basics - Anfänger-Themen 5
A Scanner-Error Java Basics - Anfänger-Themen 8
D Java Scanner Java Basics - Anfänger-Themen 9
M String in Scanner einlesen Java Basics - Anfänger-Themen 6
N Eingabe Kommazahlen über Scanner Java Basics - Anfänger-Themen 2
ZH1896ZH Verstehe verschieden Scanner und hasNext() nicht ganz Java Basics - Anfänger-Themen 2
O Mehrfache Scanner-Eingabe durch Komma getrennt Java Basics - Anfänger-Themen 6
I Scanner auf 10 Stellen begrenzt? Java Basics - Anfänger-Themen 5
B Barcode Scanner Java Basics - Anfänger-Themen 3
V Wie lasse ich die for-Schleife so oft laufen wie per Scanner angegeben? Java Basics - Anfänger-Themen 3
L Scanner schließen in While-Schleife? Java Basics - Anfänger-Themen 2
S Scanner Java Basics - Anfänger-Themen 36
S Frage zu Scanner Java Basics - Anfänger-Themen 3
cpt.Tomato Scanner problem mit Passwort Login Java Basics - Anfänger-Themen 3
O Scanner Klasse Java Basics - Anfänger-Themen 8
M java.util.scanner Fehler Java Basics - Anfänger-Themen 5
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
W Eclipse Che Scanner Java Basics - Anfänger-Themen 8
H Vererbung Static Scanner Objekt verwenden - von StdIn in einer importierten Klasse lesen Java Basics - Anfänger-Themen 10
X Erste Schritte Problem mit scanner Java Basics - Anfänger-Themen 2
A Scanner.useLocale(Locale.US); Java Basics - Anfänger-Themen 4
M Datei einlesen mit Scanner funktioniert nicht (FileNotFoundException) Java Basics - Anfänger-Themen 6
I Scanner und Arrays Java Basics - Anfänger-Themen 2
M Scanner-Eingabe nach gewissem Zeitraum überprüfen Java Basics - Anfänger-Themen 2
Neoline Methoden Scanner Methode Java Basics - Anfänger-Themen 9
E Probleme mit Scanner Java Basics - Anfänger-Themen 4
A Java Scanner Funktioniert nicht Java Basics - Anfänger-Themen 2
B Vom scanner in ein Arraylist Java Basics - Anfänger-Themen 7
L Scanner Ausgabe Java Basics - Anfänger-Themen 37
S Zeilenumbruch mit Scanner erkennen Java Basics - Anfänger-Themen 9
O Erste Schritte Scanner mehrere male benutzen (Konsole) Java Basics - Anfänger-Themen 7
W Wie arbeite ich mit dem Typ Scanner? Java Basics - Anfänger-Themen 5
J Input/Output Scanner Input als etwas einsetzen Java Basics - Anfänger-Themen 3
R CMDTools Scanner Fehler Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben