用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
應該不會啊