Printing a 2-dimensional array

Discussion in 'Java' started by cyrow, Apr 13, 2008.

  1. cyrow

    cyrow New Member

    Joined:
    Nov 19, 2007
    Messages:
    21
    Likes Received:
    0
    Trophy Points:
    0
    Code:
    //cities.txt
    kinstown 45000
    RoseHall 78000
    ####
    man can 5675
    Kinstown RoseHall 564
    Uproad  Augustine 678
    ####
    
    
    
    
    import java.io.*;
    import java.util.*;
    
    class City{
    	private String cityName;
    	private int population;
    	
    	City(String city, int pop){
    		cityName   = city;
    		population = pop;
    	}
    	
    	public String toString(){
    		String str;
    		str = "cityname     " + cityName+"\n"+
    		      "Population   " + population+"\n";
    		return str;
    	}
    }//end of City class
    
    class Distance{
    	private String c1;
    	private String c2;
    	private int distance;
    	
    	Distance(String cc1, String cc2, int dis){
    		c1 = cc1;
    		c2 = cc2;
    		distance = dis;
    	}
    	public String toString2(){
    		String str;
    		str = "cityname     " + c1+"\n"+
    			  "cityname 2   " + c2+"\n"+
    		      "Distance    " + distance+"\n";
    		return str;
    	}
    	
    }//end of Distance class
    
    
    public class As11{
    	public static void main(String[] args){
    
    		City[]citty = new City[16];
    		Distance[][]distance = new Distance[16][16];
    		
    		
    		try{
    			Scanner in = new Scanner (new FileReader("cities.txt"));
    			String x   = in.next();
    			int count  = 0;
    		
    			while(!(x.equals("####"))){//Read  first part of file into a one dimensional array
    				
    			    citty[count] = new City(x,in.nextInt());
    			    count++; 
    				x = in.next();
    		}//end while
    		
    		
    		
    		
    		int i =0;
    		int k = 0;
    		int count2 = 0;
    		
    		
    		String y = in.next();
    	
    		
    		while(!(y.equals("####"))){// Read second part of file into a two dimensional array.
    			
    		distance[i][k]= new Distance(y, in.next(),in.nextInt());
    				i++;
    				k++;
    				count2++;		
    				y = in.next();
    				
    				
    		}
    			
    		
    		
    	/*	for(int j = 0; j < count; j++){
    			System.out.println(citty[j].toString());
    		}
    		*/
    	
    		for(int l = 0; l < distance.length-1; l++){//For loop to print the two dimensional array
    			for (int h = 0; h < distance[l].length; h++){
    				System.out.println(distance[l][h].toString2());//Error Exception in thread "main" java.lang.NullPointerException
        at As11.main(As11.java:107)
    			}
    		}
    		 	
    		in.close();
    			
    		}catch(IOException e){
    			System.out.println("File Error");
    		}//end catch
    		
    		
    	}//end main
    }//end class
    
    //out put
    cityname     man
    cityname 2   can
    Distance    5675
    
    Exception in thread "main" java.lang.NullPointerException
        at As11.main(As11.java:107)
    
    Process completed.
    
    
    Problem
    It prints the first record in the second part of the file then it generates the NullPointerException error. How can I rectity this problem.
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice