问答详情
源自:1-7 Java 中的异常链

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

提问者:尘中尘27 2015-07-19 15:32

个回答

  • 康振宁
    2015-07-20 15:39:23

    应该不会啊