PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [JAVA] NullPointerException



Buchi
26.07.2007, 13:21
Hi,
Ich habe folgendes Problem und komme einfach nicht drauf, woran es liegen kann :(


System.out.println("Bitte geben sie den Namen des "
+ (i + 1)
+ ". Titels inklusive der Dauer an (getrennt durch einen Beistrich) zb.: Titel,2:10");
tmp = tasta.next();
Titel[i] = tmp.substring(0, tmp.indexOf(',')+1); // Fehlerzeile

Das ganze ist in ner IF
Dann gebe ich eine Zeichenkette einn zb.:

Titel,1:10
und bekomme.

Exception in thread "main" java.lang.NullPointerException

Weiß einer von euch weiter?

P3AC3MAK3R
26.07.2007, 13:24
Laß Dir doch einmal vor der Zeile, in der der Fehler auftritt, den Inhalt der Variablen tmp ausgeben.

Buchi
26.07.2007, 13:27
for (int i = 0; i < tasta.nextInt(); i++) {
System.out
.println("Bitte geben sie den Namen des "
+ (i + 1)
+ ". Titels inklusive der Dauer an (getrennt durch einen Beistrich) zb.: Titel,2:10");
tmp = tasta.next();
System.out.println(tmp);
/*Titel[i] = tmp.substring(0, tmp.indexOf(',')+1);
Laenge[i] = tmp.substring(tmp.indexOf(','), tmp.length()+1);
System.out.println(Titel[i]);*/
}

Gibt das Richtige aus:


Bitte geben sie den Namen des 1. Titels inklusive der Dauer an (getrennt durch einen Beistrich) zb.: Titel,2:10
Titel,1:10
Titel,1:10

P3AC3MAK3R
26.07.2007, 13:30
Das Array "Titel" ist ordnungsgemäß initialisiert worden?

Buchi
26.07.2007, 13:32
private String[] Titel;

Und dann halt noch die "längenangabe"

supersucker
26.07.2007, 13:38
for (int i = 0; i < tasta.nextInt(); i++) {
System.out
.println("Bitte geben sie den Namen des "
+ (i + 1)
+ ". Titels inklusive der Dauer an (getrennt durch einen Beistrich) zb.: Titel,2:10");
tmp = tasta.next();
System.out.println(tmp);
/*Titel[i] = tmp.substring(0, tmp.indexOf(',')+1);
Laenge[i] = tmp.substring(tmp.indexOf(','), tmp.length()+1);
System.out.println(Titel[i]);*/
}

Bei dem Code kriegt man ja Augenkrebs, formatier das mal richtig und beschreib was du machen willst und dann sehen wir weiter.

Wenn du Anfänger bist ist so ein Code ja noch ok, aber lies dir dringend mal ein paar Tutorials zu "gutem Programmierstil" durch.


private String[] Titel;

Und dann halt noch die "längenangabe"

Was nun? Initialisiert oder nicht? So wie es da steht garantiert nicht.

Poste am Besten mal alles.

Buchi
26.07.2007, 13:39
for (int i = 0; i < tasta.nextInt(); i++) {
System.out
.println("Bitte geben sie den Namen des "
+ (i + 1)
+ ". Titels inklusive der Dauer an (getrennt durch einen Beistrich) zb.: Titel,2:10");
tmp = tasta.next();
System.out.println(tmp);
/*Titel[i] = tmp.substring(0, tmp.indexOf(',')+1);
Laenge[i] = tmp.substring(tmp.indexOf(','), tmp.length()+1);
System.out.println(Titel[i]);*/
}

Bei dem Code kriegt man ja Augenkrebs, formatier das mal richtig und beschreib was du machen willst und dann sehen wir weiter.

Wenn du Anfänger bist ist so ein Code ja noch ok, aber lies dir dringend mal ein paar Tutorials zu "gutem Programmierstil" durch.

Das ist jedtz wegen dem einfügen auf die Hp...
Aber wenn du mir "behilflich" sein willst, aknnst du ihn dir ja hernehmen und selbst formatieren...

P3AC3MAK3R
26.07.2007, 13:40
Puh, da bleibt ja bald nicht mehr viel übrig. :think:

Zeig doch sicherheitshalber nochmal die Deklaration des Arrays "Titel".

Welchen Wert hat die Variable i?

supersucker
26.07.2007, 13:41
Aber wenn du mir "behilflich" sein willst, aknnst du ihn dir ja hernehmen und selbst formatieren...

Ja, ist klar, ne?

Viel Erfolg noch.

Buchi
26.07.2007, 13:45
@peacemaker: Danke für die Hilfe habs falsch initialisiert gehabt, hab a irgendwie ein 2. zeichen eingefügt, dürft angekommen sein.

@ supersucker: danke =) der Erfolg ist eingetreten, aber der augenkrebs läst zur zeit noch auf sich warten

P3AC3MAK3R
26.07.2007, 13:47
@peacemaker: Danke für die Hilfe
Kein Problem. ;)