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();
,保证不会有读取丢失现象
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)