我最近我遇到一个问题:在用Scanner的时候,如果上一次用的是nextInt(),如果接着用nextLine()时,nextLine()直接跳过!!!为什么??
为什么只是nextLine()会出现这种情况,而其他的,如nextFloat()就不会出现,这是怎么回事??
为什么只是nextLine()会出现这种情况,而其他的,如nextFloat()就不会出现,这是怎么回事??
解决方案 »
- java类中,如果有一个{},代表什么呀
- "hello world" error under ubuntu
- JBuilder2006中生成exe文件的问题
- java程序输出结果
- 请问下面的字符串我要从<?xml version="1.0"开始截取到最后</soap:Envelope>怎么实现,用substring只能从哪个字符开始
- 问一个oracle修改数据库的问题,通过表关联,将某表若干字段的数据赋值到另外一表的对应字段,初学oracle,先谢了
- java多形性的问题
- 安装JDK时,遇到超级慢的情况——从上午11点到下午2点多孩么装完。无奈~~ 其他人都是这样的吗?
- 奇怪的跨包访问问题(急!!!!!!!!!!)
- Jpcap报错setRoutingOption
- java反射 获取类里的一个静态类
- 遇到瓶颈了,求经验
串值的一部分加入如下代码
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()调用,以去除行的结束符。
希望我的回答可以帮助你的理解
nextLine
public String nextLine()
此扫描器执行当前行,并返回跳过的输入信息。
此方法返回当前行的其余部分,不包括结尾处的行分隔符。当前位置移至下一行的行首。 你使用nextInt()的时候,读取一定是数值型的字符,就是说你会输入42这样的,然后就按换行符
接着使用nextLine(),它是读到行分隔符就结束,而行分隔符前已经没信息,所以没有读到任何可返回的信息。