2016-03-04 129 views
0

我正在为类中的任务编写代码,并且从未实际以这种方式使用过扫描程序。然而,当我朗姆酒下面的代码我得到的错误传递参数args []或在java中缺少参数

Exception in thread "main" java.util.NoSuchElementException 
at java.util.Scanner.throwFor(Scanner.java:862) 
at java.util.Scanner.next(Scanner.java:1485) 
at java.util.Scanner.nextInt(Scanner.java:2117) 
at java.util.Scanner.nextInt(Scanner.java:2076) 
at World.<init>(World.java:20) 
at World.main(World.java:58) 

我想我只是困惑,因为我已经使用了世界文本文件创建偏食,它只是不允许它。

import java.util.Scanner; 

/************************************************************************* 
* Name  : 
* Username : 
* Description :  *************************************************************************/ 

public class World{ 
//instance variables 
String mapFile; //This holds the .txt name that contains the map. 
Tile[][] worldMap; 

public World(String mapFile){ 
    this.mapFile = mapFile; 

    Scanner scanner = new Scanner(mapFile); 
    //get the dimensions of the world 
    int width = scanner.nextInt(); 
    int height = scanner.nextInt(); 
    int x_coor = scanner.nextInt(); 
    int y_coor = scanner.nextInt(); 
    //initialize the array to proper height and width 
    worldMap = new Tile[width][height]; 
    //set the starting locations of the avatar character 
    Avatar avatar = new Avatar(x_coor, y_coor); 
    //populate the worldMap 
    for(int i = 0; i < worldMap.length - 1; i++){ 
     for(int j = 0; i <worldMap[0].length -1; j++){ 
      worldMap[i][j] = new Tile(scanner.next()); 
     } 
    } 


} 
//draw the map 
public void draw(){ 
    for(int i = 0; i < worldMap.length - 1; i++){ 
     for(int j = 0; j < worldMap[0].length -1; i++){ 
      worldMap[i][j].draw(i, j); 
     } 
    } 
} 







// Test method 


public static void main(String [] args) 
{  


    World world = new World(args[0]); 
    world.draw();  
} 

}

回答

1

您构建了您的Scanner围绕String(不是围绕一个File)。改变这种

Scanner scanner = new Scanner(mapFile); 

Scanner scanner = new Scanner(new File(mapFile)); 

眼下Scanner正在扫描你的String