亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于Scanner 的調用的一大問題 輸入 |諾基亞| 正常 |諾基亞 !| 報錯

關于Scanner 的調用的一大問題 輸入 |諾基亞| 正常 |諾基亞 !| 報錯

K丶k 2017-02-09 23:44:22
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 來接受多個鍵盤輸入本應該順風順水的結束 但是 突然發生了一件奇怪的事情再輸入 武器簡介的時候 ?當我輸入的是?諾基亞 ? (諾基亞)的時候 一切正常諾基亞 ?(諾基亞+空格)正常諾基亞 !(諾基亞+?。┱VZ基亞 ! 的時候報錯(諾基亞+空格+?。┦旨{悶 ?!當然這也不是什么大問題 ?后來自己單獨設置了一個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)? 感謝解惑??!
查看完整描述

3 回答

?
ziom

TA貢獻948條經驗 獲得超1109個贊

因為輸入空格的時候,Scanner默認會跳到下一個nextXX()方法,所以應該是你在輸入武器簡介的時候,下面還有一個不能接收字符類型的nextXX()

查看完整回答
1 反對 回復 2017-02-10
?
大咪

TA貢獻785條經驗 獲得超332個贊

異常的意思是輸入不匹配異?!?
查看完整回答
反對 回復 2017-02-10
  • 3 回答
  • 0 關注
  • 1368 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號