package com.myself;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class test {
public static Map<Integer,weapon> weapon=new HashMap<Integer,weapon>();
proplistinit c1 = new proplistinit();
public void testaddshow()
{System.out.println("共有"+weapon.size()+"个道具");
for(int i=0;i<weapon.size();i++)
{
System.out.println("名称:"+weapon.get(i).name+"ID:"+weapon.get(i).ID+"攻击属性:"+weapon.get(i).attack);
System.out.println("武器简介:"+weapon.get(i).instruction);
}
System.out.println("输入0 新增道具");
Scanner get = new Scanner(System.in);
int getget= get.nextInt();
if(getget==0){add();}else{System.err.println("ERROR!");testaddshow();}
}
public void add()
{
Scanner addprop = new Scanner(System.in);
System.out.println("自动赋予道具新ID");
//Integer getid =addprop.nextInt();
System.out.println("请输入需要添加的新道具的名称");
String getname=addprop.next();
System.out.println("请输入需要添加的新道具的攻击属性");
Integer getattack = addprop.nextInt();
System.out.println("请输入需要添加的新道具的道具简介");
// Scanner getinfo = new Scanner(System.in);
//String Getinfo =getinfo.next();
String getinstruction = addprop.next();
System.out.println("信息收集完毕,正在生成新道具");
weapon.put(weapon.size(), new weapon(weapon.get(weapon.size()-1).ID+1,getname,getattack,getinstruction));
System.out.println("感谢等待,新道具已加入道具列表\n输入 0 查看 现有道具列表");
int turn = addprop.nextInt();
if(turn==0){testaddshow();}else{System.out.println("输入错误,输入 0 查看 现有道具列表");}
}
public static void main(String[] args) {
test c = new test();
c.testaddshow();
c.add();
}
}
刚学几天 表示不是很懂
我设置了一个Scanner 来接受多个键盘输入
本应该顺风顺水的结束 但是 突然发生了一件奇怪的事情
再输入 武器简介的时候 当我输入的是
诺基亚 (诺基亚)的时候 一切正常
诺基亚 (诺基亚+空格)正常
诺基亚 !(诺基亚+!)正常
诺基亚 ! 的时候报错(诺基亚+空格+!)
十分纳闷 !
当然这也不是什么大问题 后来自己单独设置了一个Scanner 接受了 (诺基亚+空格+!) 正常
但是为什么 当我设置一个Scanner来接收的时候 会出现上述的情况呢!
以下是异常抛出
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
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 com.myself.test.add(test.java:50)
at com.myself.test.testaddshow(test.java:29)
at com.myself.test.main(test.java:55)
感谢解惑!!
ziom
大咪
相关分类