NullPointerException bei Übergabe eines Array

aquarium1974

Aktives Mitglied
Hallo zusammen,

kann mir jemand sagen, warum das Array welches ich übergebe NULL ist und der Code mit einer NullPointerException aussteigt?

Java:
public void schreibeRohdatenArray(String zeile) {
		String[] arrAngebot = new String[15];
		int i = 0;
		if (zeile.contains("mehr zum Artikel")) {
			i = 0;
			// System.out.println("i: "+i);
			// System.out.println("Angebotsende");
			zerlegeRohdatenArray(arrAngebot);
		} else {
			arrAngebot[i] = zeile;
			i++;
			// System.out.println("i: "+i+": " +zeile);
		}
	}

	public void zerlegeRohdatenArray(String[] arrAngebot) {
		for (int i = 0; i < arrAngebot.length; i++) {
			System.out.println(arrAngebot[i]);
			if (arrAngebot[i].contains("vergleichen")) {

			} else {
				System.out.println(arrAngebot[i]);
			}

			System.out.println(arrAngebot[i]);
		}
	}

Hier:
Tutorial / Java Grundlagen / Arrays
machen Sie es doch genau so?!?
Stelle mit Code: Suchbegriff:
--> print(array); <--
 
Zuletzt bearbeitet von einem Moderator:
Nicht das Array ist null, sondern die Elemente darin. Die NPE (höchstwahrscheinlich) fliegt beim Aufruf von
Code:
contains
, was leichter festzustellen wäre, wenn du die dazugehörige Zeilennummer gepostet hast.

Edit:
Im Tutorial arbeiten die mit int, was standardmäßig mit 0 initialisiert wird. Du arbeitest hingegen mit String, was standardmäßig null ist.
 
wie doof von mir, den fehlercode nicht zu posten...

Java:
null
java.lang.NullPointerException
	at de.matze.preiskiller.Preisvergleich.zerlegeRohdatenArray(Preisvergleich.java:79)
	at de.matze.preiskiller.Preisvergleich.schreibeRohdatenArray(Preisvergleich.java:68)
	at de.matze.preiskiller.Preisvergleich.readTextFile2(Preisvergleich.java:53)
	at de.matze.preiskiller.Preisvergleich.main(Preisvergleich.java:128)


NPE = NullPointerException?

Kann sein, daß die erste Zeile NULL ist,
wie kann ich das abfangen?

Ist try/catch elegant?

Also wenn ich den Array mit "" durchinitialisiere sollte es gehen?
 
Du überprüfst folgendes

Java:
if (arrAngebot[i].contains("vergleichen")) {

Die Elemente in arrAngebot sind aber immer null. Daher die NullPointerException.
 
Du kannst entweder alle Elemente initialisieren oder vorher auf
Code:
!=null
prüfen.

P.S. Es ist auch nicht besonders sinnvoll die Zeilenangaben wie
Code:
79
zu machen, obwohl du nur ein Snippen von 27 Zeilen gepostet hast - Zeilennummern anpassen.
 
bin jetzt einen schritt weiter.
der bufferedreader liest schon keine daten ein, warum???


Java:
	public void readTextFile2(String name) throws Exception {
		FileReader fr = new FileReader(
				"d://eigenes//projekt_hr//hr_rohdaten.txt");
		BufferedReader br = new BufferedReader(fr);
		String[] arrZeileRohdaten = new String[15];
		int i=0;
		do {
			arrZeileRohdaten[i] = br.readLine();
			i++;
			// System.out.println(zeile);
//			schreibeRohdatenArray(arrZeileRohdaten);
			System.out.println(arrZeileRohdaten[i]);
		} while (arrZeileRohdaten[i] != null);

		br.close();

		// Print the content of the file on the screen
	}

er bricht schon in der ersten zeile ab und schreibt NULL.
das ist doch die komplette zeile die er sich reinschlürft und nicht nur das erste zeichen?!?

das textfile welches ich lesen will ist so:




___________________________
Ausströmerstein Hagen Aqua Fizzzz Würfel
vergleichen
Ausströmerstein Hagen Aqua Fizzzz Würfel
0,85 € * / Stück
Online bestellbar
Lieferzeit: 1-2 Tage
Reservierbar & abholbereit
Abholbereit in 4 Stunden
mehr zum Artikel
___________________________
 
Du erhöhst nach dem lesen i um 1. Dann steht beim ersten überprüfen deiner Bedingung i auf 1, es steht aber nur etwas in i-1, also 0.
 
Du kannst entweder alle Elemente initialisieren oder vorher auf
Code:
!=null
prüfen.

P.S. Es ist auch nicht besonders sinnvoll die Zeilenangaben wie
Code:
79
zu machen, obwohl du nur ein Snippen von 27 Zeilen gepostet hast - Zeilennummern anpassen.


Mit
Code:
[Java=123]
könnte man die Zeilennummer richtigstellen!
 

Zurück
Oben