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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fighting2016 中级黑马   /  2016-3-29 19:27  /  3034 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数");
int x = sc.nextInt();
System.out.println("请输入一个字符串");
String line = sc.nextLine();
System.out.println("x = " + x + ",line = " + line);

输出结果为:
        请输入一个数
        1
        请输入一个字符串       
        x = 1,line =


为什么没有键盘录入字符串就输出了呢???

5 个回复

倒序浏览
确实是个问题啊
回复 使用道具 举报
直接把他换乘nextLine,然后再将它转换成int类型好了
回复 使用道具 举报
daniua 发表于 2016-3-29 20:02
直接把他换乘nextLine,然后再将它转换成int类型好了

嗯,我知道解决方法,但不清楚产生这个问题的原因是什么

亲知道么?
回复 使用道具 举报

黑马币-29是什么鬼????
回复 使用道具 举报
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数");
int x = sc.nextInt(); //当你输入完数字时,系统默认在你的数字后面加上了\n\t,表示数字输入完毕了,在输入的是第二行的,刚好你下面的是接收字符串,所以误以为系统默认的\n\t就是你输入的,而这字符就是换行的意思.所以你在控制台看到的就是数字能显示出来,但是字符串那个后面撒都没有就是空白.如果你前后输入的都是数字或者字符串就没有问题了,小白的理解,仅供参考,轻喷
System.out.println("请输入一个字符串");
String line = sc.nextLine();
System.out.println("x = " + x + ",line = " + line);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马