问答详情
源自:1-9 经验总结

Scanner中next()与nextLine()的区别

在给出的第一章作业参考的代码中,将String name = console.next();换成String name = console.nextLine();
导致代码运行在选择名称输出1之后,会直接抛出异常,是因为什么?
private static String getBookByName(String[] books)
			throws Exception {
		System.out.println("输入图书名称:");
		//获取输入的图书名称
		String name = console.next();
		for (int i = 0; i < books.length; i++) {
			if (name.equals(books[i]))
				//输入的名称与某一图书名称匹配,返回该图书
				return books[i];
		}
		//若无匹配,抛出”图书不存在异常“
		throw new Exception("图书不存在!");
	}


提问者:沫语 2016-05-07 14:10

个回答

  • 慕盖茨0063683
    2016-05-07 15:16:56
    已采纳

    next()以读取到有效字符(非空格,tab,enter)开始,中途遇到无效字符结束输入,得不到带无效字符的字符串,nextline()可以得到非enter的字符串