2011-03-06 103 views
0

所以,我正在研究一個應該從.csv文件中讀取數據的類。有三個數組存儲文件每一行的信息。每行開始處的字符將確定稍後在文件中存儲信息的數組。所以,它必須通過遍歷文件和掃描器的while循環進行調整。然而,拋出了一個'NoSuchElementException',我將其縮小到while循環。我究竟做錯了什麼?while while循環的NoSuchElementException

 while(scan.hasNextLine()) { 
     scan.nextLine(); 

     if(scan.next().equals("A")){ 
      aLength++; 
     } 
     else if(scan.next().equals("B")){ 
      bLength++; 
     } 
     else if(scan.next().equals("C")){ 
      cLength++; 
     } 

    } 

    // aProject = new int[aLength]; 
    // bProject = new int[bLength]; 
    // cProject = new int[cLength]; 

回答

5

您正在調用.next()三次。你真正想要做的就是調用一次,將結果保存在一個變量中,然後測試該變量是否等於"A""B""C"

+0

好的,我做到了,異常消失了,但是看起來數組的大小仍然不正確。 [鏈接](http://i53.tinypic.com/5a3zlv.png) – Austin 2011-03-06 03:53:16

+0

最有可能的是,你需要做額外的解析。您上面的代碼測試了整條生產線。你總是可以使用'line.startsWith(「A」)'等。 – 2011-03-06 04:07:18