Interpreter-Fehler NullPointerException

lajao

Mitglied
Hey Community

Meine Aufgabe war es, ein Dateiname nach Verzeichnis, Extension etc. aufzuspalten.

Dafür hab ich zwei Klassen geschreiben. Eine, die die ganze Arbeit ausführen soll und eine, die die erste testen soll.

Tester-Klasse:
Java:
import java.util.Scanner;

public class TestParser{

  public static void main(String[] args){

    Scanner scanner = new Scanner(System.in);

    System.out.println("Dateipfad eingeben: ");
    String s = scanner.nextLine();
    System.out.println(s);

    Parser parser = new Parser(s);
    parser.print();

  }
}

"Arbeiter"-Klasse
Java:
public class Parser{

 public String Pfad;

 public Parser(String s){
   Pfad = s;
 }

 int[] pos = positions();

 private String Extension(){
   String ext = Pfad.substring(pos[1]+1,Pfad.length()-1);
   return ext;
 }
 
 private String Dateiname(){
   String dat = Pfad.substring(pos[0]+1,pos[1]-1);
   return dat;
 }
 
 private String Verzeichnis(){
   String ver = Pfad.substring(0,pos[0]-1);
   return ver;
 }

 private int[] positions(){
   int[] ret = new int[2];

   int i = Pfad.length();

   while(i > 0){
    if(Pfad.charAt(i) == '.') ret[1]=i;
    if(Pfad.charAt(i) == '\\'){
      ret[0]=i;
      i = 0;
    }
   }
   
   return ret;
 }
 
 public void print(){
   System.out.println("Dateipfad:   " + Pfad);
   System.out.println("Extension:   " + Extension());
   System.out.println("Dateiname:   " + Dateiname());
   System.out.println("Verzeichnis: " + Verzeichnis());
 }
}

Beim ausführen in der Konsole krieg ich ne NullPointerException:
at Parser.positions(Parser.java:29)
at Parser.(init)(Parser.java:9)
at TestParser.main(TestParser.java:13)

Wenn ich das richtig verstehe, hat die "Arbeiter"-Klasse Schwierigkeiten, den String Pfad richtig zu lesen. Dies, obwohl der String doch über den Konstruktor definiert wurde, also frei zur Verfügung stehen solle?
Wenns wirklich daran liegt, dass die anderen Methoden den String Pfad nur durch Zeile 3 kennen, wie krieg ich die Infos aus dem Konstruktor raus? Sollte mMn eigentlich automatisch geschehen, doch wo liegt dann der Fehler?

Bin momentan komplett verwirrt :(

Ich habe ebenfalls versucht, die Methode positions(String s) zu definieren und dann einfach als positions(Pfad) aufzurufen, doch das funktionierte ebenfalls nicht. Irgendetwas stimmt mit dieser Methode nicht ???:L

btw: ich weiss, dass ich mir den Umweg über das int-Array mit der String Methode "lastIndexOf" sparen könnte, doch darum gehts wohl nicht, oder?

thx und lg
lajao
 
Zuletzt bearbeitet von einem Moderator:
T

Tomate_Salat

Gast
dein Fehler liegt hier:
Java:
 int[] pos = positions();
das wird ausgeführt bevor dein Konstruktor [c]Pfad[/c] definieren kann.

Zudem: Konventionen einhalten! Methoden/Variablen schreibt man lowerCamelCase. Nähere infos zu Konventionen findest du in meiner Signatur
 

Final_Striker

Top Contributor
Versuche es mal damit:

Java:
	public String Pfad;
	int[] pos;

	public Parser(String s) {
		Pfad = s;
		pos = positions();
	}
 

lajao

Mitglied
also muss ich das int-Array auch über den Konstruktor definieren lassen? also ca so (btw Namen angepasst ;))

Java:
public class Parser{

 public String pfad;
 private int[] pos;

 public Parser(String s){
   pfad = s;
   pos = positions(pfad);
 }

 private String extension(){
   String ext = pfad.substring(pos[1]+1,pfad.length()-1);
   return ext;
 }
 
 private String dateiname(){
   String dat = pfad.substring(pos[0]+1,pos[1]-1);
   return dat;
 }
 
 private String verzeichnis(){
   String ver = pfad.substring(0,pos[0]-1);
   return ver;
 }

 private int[] positions(String s){
   int[] ret = new int[2];

   int i = s.length()-1;

   while(i > 0){
    if(s.charAt(i) == '.') ret[1]=i;
    if(s.charAt(i) == '\\'){
      ret[0]=i;
      i = 0;
    }
   }
   
   return ret;
 }
 
 public void print(){
   System.out.println("Dateipfad:   " + pfad);
   System.out.println("Extension:   " + extension());
   System.out.println("Dateiname:   " + dateiname());
   System.out.println("Verzeichnis: " + verzeichnis());
 }
}

Neben den Namen habe ich noch ein paar Grenzen angepasst, die nicht den Array-Grenzen entsprachen.

Nun hab ich ein nächstes, bisher noch nie gesehenes Problem, das ich nicht verstehe.

Das Programm läuft zwar, es kommen auch keine Fehlermeldungen mehr, aber es hört nicht mehr auf zu rechnen..

Meine CPU wird seit ca. 5min zu 70% ausgelastet, aber er kommt zu keinem Ergebnis. So kompliziert ist das Programm ja auch nicht :(

Der System.out.println Befehl aus der Test-Klasse wird noch ausgeführt, danach bleibt er stecken.
 
T

Tomate_Salat

Gast
weil du eine endlosschleife gebaut hast:
Java:
   while(i > 0){
    if(s.charAt(i) == '.') ret[1]=i;
    if(s.charAt(i) == '\\'){
      ret[0]=i;
      i = 0;
    }
   }

angenommen s.charAt liefert einen Buchstaben: beide bedingungen sind nicht gültig. i wird nie verändert und er prüft wieder den gleichen Buchstaben. Da fehlt ein i--;
 

lajao

Mitglied
Man bin ich blöde -.-

Vielen Dank, nun funktioniert das Programm endlich einwandsfrei

Falls es jemand interessiert, hier der Quellcode des funktionierenden Programms: (Mussten noch ein paar Grenzen bei den substrings angepasst werden)

Java:
import java.util.Scanner;

public class TestParser{

  public static void main(String[] args){

    Scanner scanner = new Scanner(System.in);

    System.out.println("Dateipfad eingeben: ");
    String s = scanner.nextLine();
    System.out.println(s);

    Parser parser = new Parser(s);
    parser.print();

  }
}

Java:
public class Parser{

 public String pfad;
 private int[] pos;

 public Parser(String s){
   pfad = s;
   pos = positions(pfad);
 }

 private String extension(){
   String ext = pfad.substring(pos[1]+1,pfad.length());
   return ext;
 }
 
 private String dateiname(){
   String dat = pfad.substring(pos[0]+1,pos[1]);
   return dat;
 }
 
 private String verzeichnis(){
   String ver = pfad.substring(0,pos[0]);
   return ver;
 }

 private int[] positions(String s){
   int[] ret = new int[2];

   int i = s.length()-1;

   while(i > 0){
    if(s.charAt(i) == '.') ret[1]=i;
    if(s.charAt(i) == '\\'){
      ret[0]=i;
      i = 0;
    }
    i--;
   }
   
   return ret;
 }
 
 public void print(){
   System.out.println("Dateipfad:   " + pfad);
   System.out.println("Extension:   " + extension());
   System.out.println("Dateiname:   " + dateiname());
   System.out.println("Verzeichnis: " + verzeichnis());
 }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
H Liste Knoten NullPointerException Java Basics - Anfänger-Themen 7
C Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 10
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
berserkerdq2 Nullpointerexception, obwohl ich Array initialisiere? Java Basics - Anfänger-Themen 1
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
missy72 Klassen Objekt Array NullPointerException Java Basics - Anfänger-Themen 3
Jose05 Nullpointerexception Java Basics - Anfänger-Themen 7
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
Jose05 Nullpointerexception bei Umwandlung von String zu int Java Basics - Anfänger-Themen 2
H Java NullPointerException Java Basics - Anfänger-Themen 4
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
L Threads Komischer NullPointerException Java Basics - Anfänger-Themen 2
H Fehler: NullPointerException und ich weiß net warum Java Basics - Anfänger-Themen 4
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
Avalon NullPointerException beim Mocken Java Basics - Anfänger-Themen 6
D NullPointerException in foreach loop Java Basics - Anfänger-Themen 1
D java.lang.NullPointerException Java Basics - Anfänger-Themen 19
T Bufferedwriter code Nullpointerexception Java Basics - Anfänger-Themen 4
D NullPointerException im Array Java Basics - Anfänger-Themen 4
X java.lang.NullPointerException fehler ? Java Basics - Anfänger-Themen 1
B java.lang.NullPointerException bei javafx Java Basics - Anfänger-Themen 10
J NullPointerException beim Klonnen eines Arayys und beim aufrufen einer Methode Java Basics - Anfänger-Themen 2
V NullPointerException Java Basics - Anfänger-Themen 2
S NullPointerException während ResultSet Java Basics - Anfänger-Themen 7
V NullPointerException, wenn Key und Value null sind Java Basics - Anfänger-Themen 2
scratchy1 NullPointerException Java Basics - Anfänger-Themen 19
U Was löst meine NullPointerException aus? (Vererbung) Java Basics - Anfänger-Themen 12
F Wie kann ich diese NullPointerException umgehen?! Java Basics - Anfänger-Themen 41
dapzoo Compiler-Fehler Beim Werte verteilen in Objektarray NullPointerException Java Basics - Anfänger-Themen 4
W Optional<T> - NullPointerException Java Basics - Anfänger-Themen 37
Jascha NullPointerException vs NumberFormatException Java Basics - Anfänger-Themen 5
L Variablen NullPointerException bei Dateigröße (Nr.1) Java Basics - Anfänger-Themen 4
M Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 13
D NullPointerException umgehen Java Basics - Anfänger-Themen 17
Z Objekt Array führt zum NullPointerException Java Basics - Anfänger-Themen 2
W NullPointerException obwohl nicht null? Java Basics - Anfänger-Themen 3
W ArrayList NullPointerException Java Basics - Anfänger-Themen 4
A NullPointerException Java Basics - Anfänger-Themen 6
S NullPointerException Java Basics - Anfänger-Themen 4
T OOP Wörterbuch NullPointerException Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
O NullPointerException Java Basics - Anfänger-Themen 2
M Interpreter-Fehler Feld NullPointerException Java Basics - Anfänger-Themen 4
L Variablen Unerklärliche NullPointerException Java Basics - Anfänger-Themen 2
E Compiler-Fehler nullPointerException in verschachteltem Modell Java Basics - Anfänger-Themen 6
DaCrazyJavaExpert Threads NullPointerException Java Basics - Anfänger-Themen 8
DaCrazyJavaExpert Compiler-Fehler Variable nicht mit null initialisiert, trotzdem: NullPointerException Java Basics - Anfänger-Themen 28
kodela NullPointerException Java Basics - Anfänger-Themen 12
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
H java.lang.NullPointerException Java Basics - Anfänger-Themen 4
H NullPointerException obwohl Objekt angelegt wurde Java Basics - Anfänger-Themen 1
A Threads Reentrantlock | NullpointerException möglicher Deadlock? Java Basics - Anfänger-Themen 0
K Compiler-Fehler NullPointerException lösen Java Basics - Anfänger-Themen 16
G java.lang.NullPointerException Java Basics - Anfänger-Themen 3
P Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 1
E Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 2
S Methoden Methode funktioniert nicht | NullPointerException Java Basics - Anfänger-Themen 6
F NullpointerException bei zweidimensionalem Array Java Basics - Anfänger-Themen 2
Z OOP - Array ständig NullPointerException Java Basics - Anfänger-Themen 4
J Verstehe die NullPointerException nicht Java Basics - Anfänger-Themen 1
T Nullpointerexception und es wird nichts angezeigt Java Basics - Anfänger-Themen 15
H NullPointerException, aber wieso? Java Basics - Anfänger-Themen 5
B ProcessMessage NullPointerException Java Basics - Anfänger-Themen 11
shiroX Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 9
MrSnake ItemListener mit NullPointerException Java Basics - Anfänger-Themen 3
J java.lang.NullPointerException in meiner JavaFXControllerKlasse Java Basics - Anfänger-Themen 26
M NullPointerException Java Basics - Anfänger-Themen 8
B Vererbung NullPointerException Java Basics - Anfänger-Themen 38
D Communications link failure | java.lang.NullPointerException Java Basics - Anfänger-Themen 3
G NullPointerException Java Basics - Anfänger-Themen 1
J NullpointerException Java Basics - Anfänger-Themen 1
M Interpreter-Fehler Nullpointerexception trotz Ordentlicher Initialisierung Java Basics - Anfänger-Themen 4
F java.lang.NullPointerException, kann aber nicht sein! Java Basics - Anfänger-Themen 4
M String-Vergleich und NullPointerException Java Basics - Anfänger-Themen 4
D Java Fehler: NullPointerException Java Basics - Anfänger-Themen 1
M Vergleich zweier Array Stellen mit equals/NullpointerException Java Basics - Anfänger-Themen 9
X Problem mit NullPointerException Java Basics - Anfänger-Themen 2
K NullPointerException in der Hashtable Java Basics - Anfänger-Themen 4
S Interpreter-Fehler Hilfestellung bei einer NullPointerException Java Basics - Anfänger-Themen 1
S GraphNode --- Dijkstra Algorithmus : NullPointerException Java Basics - Anfänger-Themen 1
L NullPointerException Java Basics - Anfänger-Themen 11
M Nullpointerexception??? Java Basics - Anfänger-Themen 2
W NullPointerException bei DefaultListModel Java Basics - Anfänger-Themen 5
N NullPointerException bei Konsolenausgabe Java Basics - Anfänger-Themen 5
J Klasse in Klasse; NullPointerException Java Basics - Anfänger-Themen 8
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
Q NullPointerException Java Basics - Anfänger-Themen 5
H NullPointerException Java Basics - Anfänger-Themen 5
T Threads MultiThreading NullPointerException Java Basics - Anfänger-Themen 7
K NullPointerException wird geworfen, bitte um Hilfe! Java Basics - Anfänger-Themen 7
O Objekt weitergeben Meth Class NullPointerException Java Basics - Anfänger-Themen 2
J Char-Array - NullPointerException Java Basics - Anfänger-Themen 3
M Compiler-Fehler Java suckt - java.lang.NullPointerException Java Basics - Anfänger-Themen 12
S Array wird nicht übernommen NullPointerException Java Basics - Anfänger-Themen 6
S Datentypen List.toString wirft NullPointerException Java Basics - Anfänger-Themen 5
L Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 2
H Compiler-Fehler NullPointerException bei .length, Konstruktor fehlerhaft? Java Basics - Anfänger-Themen 3
B JRadioButton wechsel gibt NullPointerException Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben