2016-11-19 18 views
0

Meine Ausgabe ist Vergleich: null null null null null null null null Flugnummer eingeben suchen:einen 2D-Array mit Tastatureingabe

Ich bin Daten aus einer TXT-Datei bekommen was wird dann in einem 2D-Array gespeichert Kannst du mir bitte mit der Null-Situation helfen?

Hier ist mein Code:

import java.io.*; 
public class Main { 
    public static void main (String args[]) throws IOException { 
     String search; 
     FileReader fr = null; 
     LineNumberReader lnr = null; 

     String list[] = new String[160]; 

     String plane[][] = new String [20][8];//Creating an array in an array 
     int p,i; 
     try{ 
      //create new reader 
      fr = new FileReader("Data.txt"); 
      lnr = new LineNumberReader(fr); 
      String input = null; 
      for(p=0; p<20; p++) 
      for(i=0; i<8; i++){ 
       input = lnr.readLine(); 
       if (input != null) { 
        plane[p][i]=input; 
       } 
      } 
      //for(p=0; p<1; p++){ 
      // for(i=0; i<8; i++) 
      // System.out.println(plane[p][i]); 
      //} 
      }catch(Exception e){ 
      // if any error occurs 
      e.printStackTrace(); 
      }finally{ 
      // closes the stream and releases system resources 
      if(fr!=null) 
       fr.close(); 
      if(lnr!=null) 
       lnr.close(); 
     } 

     System.out.println("Enter flight number to search: \t"); 
     search = Keyboard.readString(); 
     for(p=0; p<20; p++){ 
      if(search == plane[p][0]){ 
       System.out.println("Information about flight: "+plane[p][0]); 
       System.out.println("----------------------------------"); 
       System.out.println("Flight Number: "+plane[p][0]); 
       System.out.println("Air Line: "+plane[p][1]); 
       System.out.println("To: "+plane[p][2]); 
       System.out.println("From: "+plane[p][3]); 
       System.out.println("Departure Time: "+plane[p][4]); 
       System.out.println("Estimated Time: "+plane[p][5]); 
       System.out.println("Status: "+plane[p][6]); 
       System.out.println("Distance: "+plane[p][7]); 
      } 
     } 
    } 
} 
+0

Meine Schätzung ist "Eingabe" Variable ist null. Eingabevariable zur Gegenprüfung drucken – Ravikumar

+0

Ich habe Ihr Programm gerade so geändert, dass ich es ausführen konnte. Ich kann es nicht überreden, "null" zu drucken, also nehme ich an, dass Ihr Problem woanders ist. Meine Änderungen waren: Statt 'Data.txt' habe ich eine Textdatei auf meinem Computer ausgefüllt. Ich habe die for-Schleife in dem Ausdruck "plane [p] [i]" kommentiert, um zu sehen, ob es Nullen gab, tat es nicht. Und ich musste die Zeilen nach 'System.out.println (" Flugnummer eingeben, um nach: \ t "zu suchen) auskommentieren;' weil ich nicht die 'Keyboard' Klasse habe, die Sie zu haben scheinen. –

Antwort

0

Ich glaube fest daran, dies ist, weil Ihre Data.txt Datei leer ist. lnr.readLine() kehren

null wenn das Ende des Stroms

erreicht wurde

Sie versuchen, eine NULL-Prüfung in Ihrem Code, aber es ist nicht wirklich helfen, weil Ihr Array plane von der Erstellung null enthält und wird weiterhin Nullen enthalten, bis du etwas anderes hineingelegt hast.

Es scheint, dass bereits der erste Aufruf an null zurückgibt, was ich, warum ich denke, der Leser ist am Ende der Datei von Anfang an, das heißt, die Datei ist leer.

+0

Eigentlich ist jetzt die Ausgabe: Geben Sie die Flugnummer ein, um zu suchen: KM514 (Dann gebe ich eine Flugnummer ein) (Dann stoppt der Terminal) – elaidaomar

+0

Ich denke, dass das Problem ist, wenn es um die If-Anweisung geht (der Vergleichsteil) . Ist es nicht? – elaidaomar

+0

Gut entdeckt! Ich stimme zu und ich denke, die Antwort ist hier: [Wie kann ich Strings in Java vergleichen?] (Http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java#513839) (Folge dem Link). –