社区
Java SE
帖子详情
Scanner 中关于 nextInt()与nextLine()的问题
hqch1314
2009-05-31 09:52:15
我最近我遇到一个问题:在用Scanner的时候,如果上一次用的是nextInt(),如果接着用nextLine()时,nextLine()直接跳过!!!为什么??
为什么只是nextLine()会出现这种情况,而其他的,如nextFloat()就不会出现,这是怎么回事??
...全文
2484
9
打赏
收藏
Scanner 中关于 nextInt()与nextLine()的问题
我最近我遇到一个问题:在用Scanner的时候,如果上一次用的是nextInt(),如果接着用nextLine()时,nextLine()直接跳过!!!为什么?? 为什么只是nextLine()会出现这种情况,而其他的,如nextFloat()就不会出现,这是怎么回事??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
随遇而安zx
2012-07-02
打赏
举报
回复
厉害!!!长知识了!!!
young0098
2009-06-01
打赏
举报
回复
长知识
zhuwen9
2009-05-31
打赏
举报
回复
学习了
sachmx1234
2009-05-31
打赏
举报
回复
学习
CJljfn
2009-05-31
打赏
举报
回复
原来如此
weiluo12
2009-05-31
打赏
举报
回复
API上的解释
nextLine
public String nextLine()
此扫描器执行当前行,并返回跳过的输入信息。
此方法返回当前行的其余部分,不包括结尾处的行分隔符。当前位置移至下一行的行首。
你使用nextInt()的时候,读取一定是数值型的字符,就是说你会输入42这样的,然后就按换行符
接着使用nextLine(),它是读到行分隔符就结束,而行分隔符前已经没信息,所以没有读到任何可返回的信息。
hey_bluebird
2009-05-31
打赏
举报
回复
顶。。
hqch1314
2009-05-31
打赏
举报
回复
哦!!长知识了!!谢了啊!!!
dajiadebeibei9
2009-05-31
打赏
举报
回复
nextInt() 接收一个整型字符,nextline()读入一行文本,会读入"\n"字符,但"\n"并不会成为返回的字符
串值的一部分
加入如下代码
int n = ScannerObjext.nextInt()
String s1 = ScannerObjext.nextLine();
String s2 = ScannerObjext.nextLine();
假设输入:
42
and don't you
forget it
在这种情况下,n的值为42,s1设置为空白字符,s2设置为and don't you
因为nextInt()读入42,但并没有读入"\n",因此S1调用42所在行的剩余部分
结合不同的方法从键盘读取字符输入时,有时不得不包含一条额外的nextLine()调用,以去除行的结束符。
希望我的回答可以帮助你的理解
Scanner
中
next
Int
()、next
Line
()等方法总结与
问题
解决
Scanner
中
next
Int
()、next
Line
()方法的使用注意事项 笔记 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作
中
心设置你喜爱的代
小心:
Scanner
中
关于next()、next
Int
()和next
Line
()的
问题
Java
中
最先学到的输入方法就是用
Scanner
类,方便好用,根本就不会想到会在输入上出
问题
,结果还真遇到了。
问题
描述起来太啰嗦,直接看代码运行的结果。(代码借用遇到同样
问题
的一位朋友写的,稍有修改) import java.util.*; public class ShiYan1 { public static void main(String[] args) {
Scanner
Scanner
类(next,next
Line
,next
Int
)的用法与常见
问题
一、常见的方法 .next(): 1、一定要读取到有效字符后才可以结束输入。 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。 next() 不能得到带有空格的字符串。 .next
Int
(): 这个方法跟next()一直,只是规定了数据类型是
Int
。 .next
Line
(): 1、以Enter为结束符,也就是说 next
Line
()方法返回的是输入回车之前的所有字符。 2、可以获得空白。 二、常见的问
使用
Scanner
中
next
Line
()、next
Int
()和next()遇到的
问题
及解决方法
运行结果如下从运行结果可以看出,输入第二个学生姓名被跳过了。其原因是因为next
Line
()和next
Int
()的结束方式不一样,,。这就导致在第二次循环时next
Line
()方法接收到了第一次循环时next
Int
()输入后的回车\n,也就是“23\n”
中
的“\n”,虽然回车\n不显示,但依然存在传递,所以在输入第2个学生姓名时程序会读取到回车\n结束,进行下一次输入。............
关于
Scanner
.next
Int
()和next
Line
(),标准输入被强制跳过的
问题
//javac -encoding utf-8 Testt.java import java.util.
Scanner
; class Student { private
int
id; private String name; void setId(
int
id) { this.id = id; }
int
getId() { return id; } void setName(String name) { this.name = name; } String get
Java SE
62,622
社区成员
307,252
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章