.nextLine()

Kaddl

Mitglied
Hi Leute,
wir haben hier ein Problem. Wir haben eine CSV. Datei. In dieser sind 5 Zeilen befüllt.
In unserem Programm geben wir einen Parameter (BSTNR) ein und wir möchten mit einem Scanner dann herauslesen in welcher Zeile dieser Parameter steht. Und das soll er uns dann ausgeben.

Unser Scanner sieht wie folgt aus:

Java:
public String readData(String BSTNR) {
		try {
            File f = new File("c:\\config.csv");
            Scanner sc = new Scanner(f);
			
             do{
            	    if(sc.nextLine().contains(BSTNR)){
	             zeile=sc.nextLine();
            	}
	}while  (sc.hasNextLine());
			
           			
		} catch (FileNotFoundException e) {
			System.out.println("Datei nicht gefunden");
		} catch (IOException e) {
			System.out.println("E/A-Fehler");
		} 
		return zeile;
	}

try-catch einfach mal ignorieren.

Das Problem ist jetzt das, dass er uns nicht die Zeile wo der Parameter drin steht rausgibt, sondern immer die darauf folgende Zeile. Wir verstehen nur nicht wieso... Sieht denn jemand wo unser Fehler liegt?

zeile wird in einer anderen selbst gebauten Methode ausgegeben. Das Ausgeben funktioniert auch einwandfrei. Nur halt immer falsch.
 
Zuletzt bearbeitet:

java123

Mitglied
Du solltest sc.nextLine() einer Variablen zuweisen. Wenn du 'zeile=sc.nextLine();' aufrufst springt er schon in die nächste Zeile.

Gruß
 

Kaddl

Mitglied
Wie meinst das genau? Kann mir grade nicht vorstellen, wie ich das einer Variable zuweisen soll. Hab ich das nicht schon wenn ich sage zeile= ?
 

Kaddl

Mitglied
Du solltest sc.nextLine() einer Variablen zuweisen. Wenn du 'zeile=sc.nextLine();' aufrufst springt er schon in die nächste Zeile.

Gruß

Genau so haben wir das auch gemacht! :)

Java:
public String readData(String BSTNR) {
		try {

			f = new File("config.csv");
			sc = new Scanner(f);

			do {
				if ((tmpsc = sc.nextLine()).contains(BSTNR)) {
					zeile = tmpsc;

				}
			} while (sc.hasNextLine());

		} catch (FileNotFoundException e) {
			System.out.println("Datei nicht gefunden");
		} catch (IOException e) {
			System.out.println("E/A-Fehler");
		}
		return zeile;
	}
 

Ähnliche Java Themen

Neue Themen


Oben