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

為了賬號安全,請及時綁定郵箱和手機立即綁定

Scanner中next()與nextLine()的區別

在給出的第一章作業參考的代碼中,將String?name?=?console.next();換成String?name?=?console.nextLine();
導致代碼運行在選擇名稱輸出1之后,會直接拋出異常,是因為什么?
private?static?String?getBookByName(String[]?books)
			throws?Exception?{
		System.out.println("輸入圖書名稱:");
		//獲取輸入的圖書名稱
		String?name?=?console.next();
		for?(int?i?=?0;?i?<?books.length;?i++)?{
			if?(name.equals(books[i]))
				//輸入的名稱與某一圖書名稱匹配,返回該圖書
				return?books[i];
		}
		//若無匹配,拋出”圖書不存在異?!?		throw?new?Exception("圖書不存在!");
	}


正在回答

1 回答

next()以讀取到有效字符(非空格,tab,enter)開始,中途遇到無效字符結束輸入,得不到帶無效字符的字符串,nextline()可以得到非enter的字符串


0 回復 有任何疑惑可以回復我~
#1

沫語 提問者

但是為什么我將上面那個程序的第七行改成nextLine()后,運行結果會直接拋出異常,但是只用next()會在“輸入圖書名稱:”后面停下等待輸入 輸入命令:1-輸入圖書名稱查找 2-輸入圖書序號查找 1 輸入圖書名稱: 圖書不存在 輸入命令:1-輸入圖書名稱查找 2-輸入圖書序號查找
2016-05-07 回復 有任何疑惑可以回復我~
#2

沫語 提問者

非常感謝!
2016-05-12 回復 有任何疑惑可以回復我~
#3

慕粉3170877

我還是不明白是什么意思?
2016-05-12 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

Scanner中next()與nextLine()的區別

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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