用scanner.next()讀取屏幕輸入的字符串時總是出問題。
System.out.println("***輸入命令:1-按照名稱查找圖書;2-按照序號查找圖書");
????????Scanner?input=new?Scanner(System.in);
????????int?seekType=input.nextInt();
????????
????????if(seekType==1){
???????? //用圖書名尋找圖書
???????? System.out.println("輸入圖書名稱:");
???????? //******就下面這兒總是出問題。
???????? String?j=input.next();?//將輸入的圖書名稱存到j變量里。
???????? for(int?i=0;i<books.length;i++){
???????? if(j.equals(books[i].getBookName())){
???????? System.out.println("book:"+books[i].getBookName());
???????? return;
???????? }
???????? }
???? throw?new?NoExistException("有參構造:圖書不存在");
????????}上面的函數中,我先選1,再輸入“高數”這個字符串,總是錯誤。我調試時發現:是因為每次在屏幕上輸入“高數”,但變量 j 里面存的總是"gaoshugao高數“或者“gaosh高數”這種字符串,而且每次都不一樣。
是因為scanner.next這個函數的問題嗎?(在第一季里講過這個函數scanner.nextInt是用來輸入整數,而scanner.next是用來輸入字符串的)。
2015-07-20
應該不會啊