split nullpoiner exception

nikrus

Mitglied
Hallo,
ich bin noch ein ziemlich blutiger Anfänger in Sachen Java und finde leider meinen Fehler nicht.
Ich versuche einen String(zwischenspeicher) aus einem String-Array(ladearray) auszulesen und dann den String bei dem Zeichen "/" in Form von Teilstrings in ein neues Array zu speichern(splitErgebnis).

Dann soll dieses Array zunächst in ein Objekt (laden) eingefügt werden und darüber dann in eine Liste eingefügt werden.

Leider gibt es schon beim splitten eine nullpointer exception.
Ich hoffe, dass ihr mir helfen könnt. Vielen Dank schonmal 😉

Java:
for(int lauf=0;lauf<runde;lauf++)
          {
            String zwischenspeicher=ladearray[lauf];
            splitErgebnis =zwischenspeicher.split("/");
            String zs1=splitErgebnis[0];
            laden.setName(zs1);
            String zs2=splitErgebnis[1];
            laden.setVorname(zs2);
            String zs3=splitErgebnis[2];
            laden.setStrasse(zs3);
            String zs4=splitErgebnis[3];
            laden.setOrt(zs4);
            String zs5=splitErgebnis[4];
            laden.setMail(zs5);
            ladeliste.append(laden);


          }
 
Java:
ladearray[lauf]
scheint wohl null zu sein (zumindest bei einem der Schleifendurchläufe).

Mehr kann ich dir dazu auch nicht sagen da du 1. nicht den ganzen Code gepostet hast und 2. nicht die ganze Fehlermeldung gepostet hast.
 
hallo,
wo hast du denn "ladearray" und "splitErgebnis" initialisiert?
So wie ich das sehe muss eins von beidem nicht initialisiert bzw. null sein, zeig am besten mal etwas mehr von deinem Code. 😉
Schön wäre auch die genaue Fehlermeldung. 😉

Noch eine Anmerkung zu deinem Code:

Java:
String zs1=splitErgebnis[0];
laden.setName(zs1);
hat es einen speziellen Grund, dass du hier eienn neuen String anlegst?
Sonst mach es doch einfach so:
Java:
laden.setName(splitErgebnis[0]);

mfg zaega
 
Hmm stimmt, aber ich finde meinen Fehler trotzdem nicht. Wahrscheinlich habe ich grade einfach ein ziemliches Brett vor dem Kopf. 😉

Hier ist der ganze Code, der die Stelle betreffen sollte:

Java:
 String[] splitErgebnis=new String[4];
      Adresse laden=new Adresse();
      AdressListe ladeliste=new AdressListe();
      int runde=0;
      String[] ladearray=new String[50];
      File f = new File("speicher.txt");
      FileWriter file=null;
      if(f.exists())
      {
          BufferedReader filezwei=null;
          String readinhalt;


         try
         {
           filezwei=new BufferedReader(new FileReader("speicher.txt"));
         }catch (FileNotFoundException ex){
           System.out.println("Error");
         }

         try{

          while ((readinhalt=filezwei.readLine())!=null)
          {
            runde++;
            ladearray[runde]=readinhalt;


          }


          for(int lauf=0;lauf<runde;lauf++)
          {
            String zwischenspeicher=ladearray[lauf];
            System.out.println(ladearray[lauf]);
            splitErgebnis =zwischenspeicher.split("/");
            String zs1=splitErgebnis[0];
            laden.setName(zs1);
            String zs2=splitErgebnis[1];
            laden.setVorname(zs2);
            String zs3=splitErgebnis[2];
            laden.setStrasse(zs3);
            String zs4=splitErgebnis[3];
            laden.setOrt(zs4);
            String zs5=splitErgebnis[4];
            laden.setMail(zs5);
            ladeliste.append(laden);


          }
         }catch (IOException ex){
          System.out.println("Error");
         }


       }
        else
        {
          try{
              file=new FileWriter("speicher.txt");

              String inhalt="";
              file.write(inhalt);
              file.close();
              }catch (IOException ex) {
                System.out.println("Error");
              }
        }

die Fehlermeldung ist folgende:

Exception in thread "main" java.lang.NullPointerException
at EinAus.<init>(EinAus.java:220)
at Starter.main(Starter.java:5)

EinAus ist die Klasse um die es geht. Zeile 220 ist die Zeile mit der split-Anweisung.

Danke für die schnelle Hilfe 🙂
 
Möglicherweise liegt hier der Fehler:
Java:
while ((readinhalt=filezwei.readLine())!=null)
          {
            runde++;
            ladearray[runde]=readinhalt;
 
          }

Du lässt ladearray[0] leer, da du bereits davor "runde" inkrementierst.
Vor dem Split greifst du allerdings auf ladearray[0] zu.

mfg zaega
 

Neue Themen


Zurück
Oben