java从文件中输入数组,java – 从文件输入填充数组

我正在研究一个口袋妖怪战斗模拟器,(基本上是pokemonshowdown gen1),试图自动化制作口袋妖怪阵列,但遇到了扫描仪问题.文件格式为:Name.Type1.Type2.hp.attack.defense.special.speed.list可学习的动作.所以:

Aerodactyl.Flying.Rock.80.105.65.60.130.Agility,Bide,Bite,Double-Edge,Double Team,Dragon Rage,Fire Blast,Fly,Hyper Beam,Mimic,Rage,Razor Wind,Reflect,Rest,Sky Attack,替补,超音速,迅速,击倒,有毒,翼攻击.

我有一个方法适用于我的typeArray和moveArray但由于某些原因使用基本相同的循环,扫描仪返回空标记而不是文件中的内容.

例外:

0 Exception in thread "main" java.lang.NumberFormatException: For input string: ""

at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

at java.lang.Integer.parseInt(Integer.java:592)

at java.lang.Integer.parseInt(Integer.java:615)

at Controller.initPokemonArray(Controller.java:169)

at Controller.(Controller.java:29)

at Driver.main(Driver.java:15)

这是整个方法,它在hp的parseInt调用中抛出错误.

private Pokemon[] initPokemonArray() {

Pokemon[] pokemonArray = new Pokemon[83];

try {

Scanner inputScan = new Scanner(new File("src/pokemon")).useDelimiter(".");

String name = "";

Type type1 = typeArray[0];

String inputType1 = "";

Type type2 = typeArray[0];

String inputType2 = "";

int hp = 0;

int atk = 0;

int def = 0;

int spc = 0;

int spe = 0;

String[] lm = {};

Move[] learnableMoves;

int counter = 0;

while (counter < 83) {

System.out.print(counter);

if (inputScan.hasNextLine()) {

name = inputScan.next();

System.out.println(name+" ");

//System.out.print("name");

inputType1 = inputScan.next();

for (int i = 0;i < 16;i++)

if (inputType1.equals(typeArray[i].toString()))

type1 = typeArray[i];

System.out.println(type1.toString()+" ");

inputType2 = inputScan.next();

for (int i = 0;i < 16;i++)

if (inputType2.equals(typeArray[i].toString()))

type2 = typeArray[i];

System.out.println(type2.toString()+" ");

hp = Integer.parseInt(inputScan.next());

System.out.println(hp+" ");

atk = Integer.parseInt(inputScan.next());

System.out.println(atk+" ");

def = Integer.parseInt(inputScan.next());

System.out.println(def+" ");

spc = Integer.parseInt(inputScan.next());

System.out.println(spc+" ");

spe = Integer.parseInt(inputScan.next());

System.out.println(spe+" ");

lm = inputScan.next().split(",");

System.out.println();

}

//TODO move this to private helper method

learnableMoves = new Move[lm.length];

for (int i = 0;i < 160;i++) {

for (int j = 0;j < lm.length;j++) {

if (lm[j] == moveArray[i].getName())

learnableMoves[j] = moveArray[i];

}

}

pokemonArray[counter] = new Pokemon(name,type1,type2,hp,atk,def,spc,spe,learnableMoves);

counter++;

}

inputScan.close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return pokemonArray;

}

免责声明:这是我的java 2课程的一个项目,也是我在这里的第一篇文章,所以我不知道我应该做什么,所以只是让它在这里知道.

Scanner inputScan = new Scanner(new File("src/pokemon")).useDelimiter("\\.");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值