用scanner.next()讀取屏幕輸入的字符串時(shí)總是出問題。
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(luò)變量里。 ???????? 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("有參構(gòu)造:圖書不存在"); ????????}
上面的函數(shù)中,我先選1,再輸入“高數(shù)”這個(gè)字符串,總是錯(cuò)誤。我調(diào)試時(shí)發(fā)現(xiàn):是因?yàn)槊看卧谄聊簧陷斎搿案邤?shù)”,但變量 j 里面存的總是"gaoshugao高數(shù)“或者“gaosh高數(shù)”這種字符串,而且每次都不一樣。
是因?yàn)閟canner.next這個(gè)函數(shù)的問題嗎?(在第一季里講過這個(gè)函數(shù)scanner.nextInt是用來輸入整數(shù),而scanner.next是用來輸入字符串的)。
2015-07-20
應(yīng)該不會(huì)啊