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("圖書不存在!"); }
2016-05-07
next()以讀取到有效字符(非空格,tab,enter)開始,中途遇到無效字符結束輸入,得不到帶無效字符的字符串,nextline()可以得到非enter的字符串