Java中输入的注意事项

创建 Scanner 对象获取键盘输入:

Scanner sc = new Scanner(System.in);

next 方法

1、一定要读取到有效字符(非空格,非换行符)后才可以结束输入。
2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
因此,next() 不能得到带有空格的字符串。

nextLine()方法

1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。

next与nextLine连用

s1=sc.next(); s2=sc.nextLine();
输入:
aaa
bbb
s1会读取 aaa(不包含回车)
s2会读取 回车符
因此bbb不会被读取
s1=sc.next(); sc.nextLine(); s2=sc.nextLine();
因此,在每一个 next()、nextDouble() 、 nextFloat()、nextInt() 等语句之后需要加一个nextLine()语句,将被next()去掉的Enter结束符过滤掉

常见实例 读取一个矩阵

输入

代码

图中标记处可以省略
因为'sc.nextInt();'的性质与next()一致,对输入有效字符之前遇到的空白(回车、空格),会自动将其去掉

常见实例 读取n行字符串

错误示范

for循环中第一个nextline会自动读取之前过滤的回车,因此不会读取到完整的n行字符即返回

正确写法
在读取int数字后过滤

输入输出效果

综上所述

综合以上实验,应当在每一个next()类方法读取到的最后一个元素之后,再加一行sc.nextLine();,保证不会有读取丢失现象

posted @   StarLikeRain  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示