区别:
next()读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。
nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的.
【问题分析】
必要的知识:in.nextLine();不能放在in.nextInt();代码段后面
否则in.nextLine();会读入"\n"字符,但"\n"并不会成为返回的字符
因为nextInt();接收一个整型字符,不会读取\n,nextline();读入一行文本,会读入"\n"字符,但"\n"并不会成为返回的字符
那么问题就在于for循环中的三个输入等待中,前两个是字符串(学校名称、校长姓名)最后一个是整型(建校时间),
在第一次循环时并没有什么问题,但当循环进入第二次时,第一次循环输入的班级数目(假设为2),我们输入的是"2\n",
nextInt();扫描了2这个值并返回(没有读取"\n"字符),而第二次循环一开始的nextLine();接收了上一个循环最后输入的"\n"字符,
然而"\n"并不会成为返回字符,所以看起来有一种“跳过”的假象。
网友评论