2011-03-06 155 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