因此,這裏是我的代碼:沒有這樣的元素異常?
public static void getArmor(String treasure)
throws FileNotFoundException{
Random rand=new Random();
Scanner file=new Scanner(new File ("armor.txt"));
while(!file.next().equals(treasure)){
file.next(); //stack trace error here
}
int min=file.nextInt();
int max=file.nextInt();
int defense=min + (int)(Math.random() * ((max - min) + 1));
treasure=treasure.replace("_", " ");
System.out.println(treasure);
System.out.println("Defense: "+defense);
System.out.println("=====");
System.out.println();
}
public static void getTreasureClass(Monster monGet)
throws FileNotFoundException{
Random rand = new Random();
String tc=monGet.getTreasureClass();
while (tc.startsWith("tc:")){
Scanner scan=new Scanner(new File ("TreasureClassEx.txt"));
String eachLine=scan.nextLine();
while(!tc.equals(scan.next())){
eachLine=scan.nextLine();
}
for (int i=0;i<=rand.nextInt(3);i++){
tc=scan.next();
}
getArmor(tc); //stack trace error here
}
}
出於某種原因,我得到一個沒有這樣的元素異常
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1416)
at LootGenerator.getArmor(LootGenerator.java:43)
at LootGenerator.getTreasureClass(LootGenerator.java:68)
at LootGenerator.getMonster(LootGenerator.java:127)
at LootGenerator.theGame(LootGenerator.java:19)
at LootGenerator.main(LootGenerator.java:11)
我不知道爲什麼,雖然。基本上我的程序正在搜索兩個文本文件 - armor.txt和TreasureClassEx.txt。 getTreasureClass從一個怪物那裏接受一個寶物,並在txt中搜索,直到它到達一個基本裝甲物品(一個不以tc開頭的字符串)。然後它會搜索getArmor獲得一個與它所得到的基本裝甲名稱相符的裝甲寶物班。任何意見,將不勝感激!謝謝!
鏈接到txt文件是在這裏:http://www.cis.upenn.edu/~cis110/hw/hw06/large_data.zip
如果您可以使用註釋標記堆棧跟蹤中提到的代碼行,那麼我們可以得到一個參考點,這將會很好。 –
你可以發佈文件內容嗎? – Tom