A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© P李勇 中级黑马   /  2015-4-3 17:48  /  4113 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我创建了一个Scanner对象然后我想分别输入用户名和密码,见下
                                 System.out.println("请输入用户名:");
                                String newUsername = sc.nextLine();
                                System.out.println("请输入密码:");
                                String newPassword = sc.nextLine();
但是控制台却两个提示一起跳出来了,然后我只输入了一次,再回车就没了。
不应该是先跳出来“请输入用户名:”,输入用户名回车后
再跳出来  "请输入密码:"吗
为什么我的实现不了呢?求助

评分

参与人数 1技术分 +2 收起 理由
lwj123 + 2 很给力!

查看全部评分

14 个回复

倒序浏览
{:3_50:}           

QQ截图20150403181034.png (23.4 KB, 下载次数: 59)

QQ截图20150403181034.png

QQ截图20150403181043.png (9.47 KB, 下载次数: 41)

QQ截图20150403181043.png

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

回复 使用道具 举报

你看我的
我的就是这种。。。。


而且我想问的是switch现在不是可以使用字符串了么,我的也用不了。。怎么设置啊
回复 使用道具 举报

{:3_59:}单独用也可以。。。我放到switch语句里用的,怎么是一下子出来的,额
回复 使用道具 举报

我知道了!!

因为我之前还有个输入,是int型的,然后回车了,是不是把这个回车传给了
请输入用户名!!!

点评

没你的代码,我可以不知道你咋玩的。  发表于 2015-4-3 20:22
回复 使用道具 举报
P李勇 发表于 2015-4-3 18:37
我知道了!!

因为我之前还有个输入,是int型的,然后回车了,是不是把这个回车传给了

重新构造一个输入就好了{:3_53:}
回复 使用道具 举报
你看看这不是可以吗

QQ截图20150403222253.png (13.33 KB, 下载次数: 46)

这跟你的一样

这跟你的一样
回复 使用道具 举报
可以的了吧

QQ截图20150403222918.png (20.83 KB, 下载次数: 56)

QQ截图20150403222918.png
回复 使用道具 举报
孙振祥 来自手机 中级黑马 2015-4-3 22:47:48
9#
估计你代码有的地方写错了
回复 使用道具 举报
看楼主的代码,不应该出现这种情况,您可以改用next()接收。
向您说的这种情况,当先接收int时,再接收String时,会出现这种情况。
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
String b = sc.nextLine();
此时,在控制台输入时,会发现,a接收到了您输入的整数,而b没接收到输入的字符串。
是由于当您输入完整数时,按了回车符,此时b把回车符接受了。所以会导致这种情况。
回复 使用道具 举报
当jvm检测到你输入了enter后就认为你输入了。就会进入下一个语句
回复 使用道具 举报
估计是你当时无意中多敲了一个换行
回复 使用道具 举报
我给你解释解释:
Scanner对象在使用nextInt()之后然后使用nextLine()之后会出现你上面的问题:原因:就在回车符的问题

当在录入nextInt()之后按回车时,该回车符就已经被nextLine()接收了,所以才会有这样的效果!

解决:
使用两个Scanner对象录入数据
都使用nextLine()录入数据,之后再进行转化为你想要的类型!
回复 使用道具 举报
lwj123 发表于 2015-4-4 11:01
我给你解释解释:
Scanner对象在使用nextInt()之后然后使用nextLine()之后会出现你上面的问题:原因:就在 ...

{:2_32:}涨姿势了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马