最近好多同学都问nextline空字符串的问题,小旭简单做了一下实验,希望能帮到有疑问的小伙伴们。
大家好多再问:nextint() 后加个nextline()输完整数后就不再让输字符串了。好多人解释前面读取了整数,nextLine直接读到了后面的回车换行。这是没有问题的。但很多小伙伴就有了疑问。
疑问1:nextint不都用过回车换行了么?为什么还对nextline起作用?
疑问2:如果再来一个nextline是不是还会去读那个回车换行?
疑问...:等等...
小编也是新人好奇,就简单做了一下实验
结论:nextint读取的是int值,读完就完事(后面遇到空格 tab 回车都算结束)。不会换行。
而nextline是读一句,且会认为空格TAB也算字符串内容,必须碰到回车换行键才结束,会换行。
可能看结论不太理解,小编语言不是很好,可以看下面的举例理解,新人勿喷。
测试一:单独执行nextint,打印结果;
输入:“1” “空格”“ 2”,然后回车 ,打印结果为 :1。
测试二:执行两句nextint,打印结果;
输入:“1” “空格”“ 2”,然后回车 ,打印结果为:第一句是 1第二句是 2。
测试三:执行一句nextint,执行一句nextline;
输入:“1” “空格”“22 33 44”然后回车,打印结果:第一句是1 第二句是 22 33 44
测试四:一句nextint后再执行两句nextline:
输入:”1“ 然后回车,发现还能输。。
小编有点事,就不上图了自己多试试,结论就是:输入语句中nextline比较特殊读的是行,而其他的读的不是行,是自己的类型。
空字符串解决方法:1中间可new新对象;
2中间可加一句nextline让程序换行;
3换位置
4用next代替
注:可留言给小编交流。
|