2012-09-27 91 views
1

我的程序打印所有數據在行上,但只打印每隔一行。我知道這與「nextLine」有關,但我找不到導致問題的原因。程序跳過其他行,但不知道爲什麼

import java.io.*; 
import java.util.*; 

public class hw2 
{ 
    public static void main (String[] args) throws Exception 
    { 

    String carrier; 
    int flights; 
    int lateflights; 
    int ratio; 

    String[][] flightData= new String [221][3]; 
    String[] temp; 

    File file = new File ("delayed.csv"); 
    Scanner csvScan = new Scanner(file); 

    int c = 0; 
     while ((csvScan.nextLine()) != null){ 

     String s = csvScan.nextLine(); 

     temp = s.split(","); 

     for(int i =0; i < temp.length ; i++) 
      System.out.println(temp[i]); 

     flightData[c][0] = temp[1]; 
     flightData[c][1] = temp[6]; 
     flightData[c][2] = temp[7]; 
     c = c+1; 
     } 

    } 

}

回答

3

考慮使用此方法(見doc here):

Scanner csvScan = new Scanner(file); 
while (csvScan.hasNextLine()) { 
    String s = csvScan.nextLine(); 
    // for testing 
    System.out.println(s); 
    // ... rest of code 
} 
+1

** **捂臉OFC。 +1這是正確的答案。 – Brian

+0

是的,你在while循環中的測試實際上是從掃描儀中刪除一行。您將其更改爲hasNextLine(),並且您將停止跳過行。 – digidigo

相關問題