首先说明,对于输入的话
一般只有回车,才能结束输入,然后往下走,哪怕某个输入是吃回车的,你最后一个吃的回车也会在被吃的同时,帮你结束输入,然后往下接着走。你输入其他的,哪怕是输入完了,也得等你回车了,才会接着走。
而空格最多是,对那些不吃空格的起到分隔作用,但不会结束往下继续走
next和nextLine的区别:
next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。完整标记的前后是与分隔模式匹配的输入信息所以next()不能得到带空格的字符串,儿nextLine()是遇到回车是才结束,所以可以得到带空格的字符串
我说的话就是,next必须从有效数字输入了才会开始读(之前的空格回车对它没影响),然后遇到空格回车什么的才会停
显而易见,next不吃空格,也不吃回车,next只吃有效字符串,并且只有吃了有效数字后,再遇见空格才是分隔符(只是分隔,不是结束,回车才能继续往下执行),再遇见回车才会结束往下走
nextLine吃一切,单一行的输入全吃,一行行的吃完一行的全部输入,或者单吃一个回车也是可以的,也就是说,你一开始就给他个回车,他吃了就结束了
nextInt()用过后,如果后面又有nextLine的话,要在有作用的nextLine()前面多写个nextLine()吃回车
ps:没有读入单个字符的方法。但可以转换 如:String s=scanner.nextLine(); char c=s.charAt(0)