用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是用来输入字符串的)。