
在上述代码中,我们利用nextLine()连续输入2个字符串,显然x=1,而y只能读取第一个字符串后面的回车,得到空,解决的方式可以是是在两次输入之间加入一个sc.nextLine()。
我们稍加修改,改变一行输出代码的位置:

进一步,我发现在第一个字符串的输入后,立马输出任意数据,y就能正常读取第二行输入的字符串了。
有人说重新创建一个Scanner类来输入可以解决连续输入问题:

我感觉有一点道理,但是行不通,也不太懂原因。
对上面2点,我感到非常疑惑,想请知道的朋友解释一下,还有就是讲一讲我们在利用Scanner输入的时候输入,扫描,读取是究竟怎么一个关系。
除此之外,还有一个小问题:

这里,显然y仍然是读取了a后面的回车,为空。网上说之间加入一个sc.nextLine()可以起到一个读取换行的作用(不知道我有没有理解错)。

对于连续输入2个字符串的情况,加入一个sc.nextLine()可以解决第二个字符串的读入问题,但是当第一个输入的数据是整数类型时,使用此方法仍然不奏效,在输入之间输出任意数据也不行(我目前找到的解决方法只有额外利用一个String类对象去获取空)。
我对sc.nextLine()换行的具体原理还是不太懂想请知道的朋友讲一讲。
初学java,很多东西都还学不明白,希望可以被解答一下,谢谢大家啦!
我这里试过了没问题,
你试试用DOS命令窗口运行