Java.为什么线程的run()方法里不能用Scanner的nextLine方法,那要怎样才能在线程里进行控制台输入

在实现字符窗口的输入时我个囚更喜欢选择使用扫描器Scanner,它操作起来比较简单

在写作业的过程中,我发现用Scanner实现 字符串的输入有两种方法一种是next(),一种

是nextLine()但是这兩种方法 究竟有什么区别呢?

我查了一些资料总结如下:

next()一定要读取到有效字符后才可以结束输入对输入有效字符之前遇到的空格键、Tab、

或Enter键等结束符,next()方法会自动将其去掉只有在输入有效字符之后,next()方法

才将其后的输入的空格键、Tab或Enter键等视为分隔符或结束符简单地说,next()查找并返回

来自此扫描器的下一下完整标记完整标记的前后是与分隔模式的输入信息,所以next方法不能得到

可以得到带空格嘚字符串的

鉴于以上两种方法的区别,同学样一定要注意next()方法 与nextLine()方法 的连用举例如下:

可以看到,nextLine()自动读取了被next()去掉的Enter作为他的結束符所以没办法给s2键盘验证,我发现

将next()去掉的Enter结束符过滤掉例如上面的程序改写为:

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信