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

来源:1-9 经验总结

沫语

2016-05-07 14:10

在给出的第一章作业参考的代码中,将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("图书不存在!");
	}


写回答 关注

1回答

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

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


    慕粉3170...

    我还是不明白是什么意思?

    2016-05-12 20:46:44

    共 3 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题