2016-10-22 13 views
0

これは、StringTokenizerを理解していない私には間違いないと思うけど、どこでも答えは見つからない。なぜこのエラーが発生するのですか?NoSuchElementExceptionが表示されるのはなぜですか?

 import java.io.*; 
import java.util.StringTokenizer; 
import java.util.Scanner; 


public class NHLDemo { 
    public static void main(String[] args) throws FileNotFoundException{ 
     File file = new File("nhlstats"); 
     Scanner inputFile = new Scanner(file); 
     PlayerRecord pr; 
     NHLStats list = new NHLStats(); 
     while(inputFile.hasNext()) 
     { 
      String line = inputFile.next(); 
      StringTokenizer token = new StringTokenizer(line, "\t"); 
      while(token.hasMoreTokens()){ 
       System.out.print(token.nextToken()); 
       System.out.print(token.nextToken()); 
       String name = token.nextToken(); 
       String position = token.nextToken(); 
       String team = token.nextToken(); 
       int gp = Integer.parseInt(token.nextToken()); 
       int g = Integer.parseInt(token.nextToken()); 
       int a = Integer.parseInt(token.nextToken()); 
       int pim = Integer.parseInt(token.nextToken()); 
       int sog = Integer.parseInt(token.nextToken()); 
       int gwg = Integer.parseInt(token.nextToken()); 
       pr = new PlayerRecord(name, position, team, gp, g, a, pim, sog, gwg); 
       list.add(pr); 
      } 
     } 
     list.enumerate(); 
    } 
} 

Iは各ライン上のトークンの同量を有している特定のファイルからデータを読んでい

(EX。 セントルイスRW TB 48 17 43 14 112 2

Stamkos C TB 48 29 28 32 157 2

オヴェチキンRW WSH 48 32 24 36 220 4

クロスビーC PIT 36 15 41 16 124 1等)

答えて

0

あなたがするときString line = inputFile.next();ラインはちょうどセントルイスあるので、あなたはのnextTokenをしようとすると、例外を取得

この作品:

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.Scanner; 
import java.util.StringTokenizer; 

public class MyStringTokenizer { 
    public static void main(String[] args){ 
     try{ 
     File file = new File("nhlstats"); 
     BufferedReader input=new BufferedReader(new FileReader(file)); 
     //Scanner inputFile = new Scanner(file); 
     PlayerRecord pr; 
     NHLStats list = new NHLStats(); 
     String line=""; 
     while((line=input.readLine())!=null) 
     { 
      if(!line.equals("")){ 
      StringTokenizer token = new StringTokenizer(line, "\t"); 
      String name = token.nextToken(); 
      String position = token.nextToken(); 
      String team = token.nextToken(); 
      int gp = Integer.parseInt(token.nextToken()); 
      int g = Integer.parseInt(token.nextToken()); 
      int a = Integer.parseInt(token.nextToken()); 
      int pim = Integer.parseInt(token.nextToken()); 
      int sog = Integer.parseInt(token.nextToken()); 
      int gwg = Integer.parseInt(token.nextToken()); 
      pr = new PlayerRecord(name, position, team, gp, g, a, pim, sog, gwg); 
      list.add(pr); 
      } 
     } 
     input.close(); 
     list.enumerate(); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 
} 
関連する問題