黑马程序员技术交流社区

标题: sc.nextInt()与sc.nextLine() [打印本页]

作者: fighting2016    时间: 2016-3-29 19:27
标题: sc.nextInt()与sc.nextLine()
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 =


为什么没有键盘录入字符串就输出了呢???
作者: 305450674    时间: 2016-3-29 19:30
确实是个问题啊
作者: daniua    时间: 2016-3-29 20:02
直接把他换乘nextLine,然后再将它转换成int类型好了
作者: fighting2016    时间: 2016-4-3 19:11
daniua 发表于 2016-3-29 20:02
直接把他换乘nextLine,然后再将它转换成int类型好了

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

亲知道么?
作者: fighting2016    时间: 2016-4-3 19:12
305450674 发表于 2016-3-29 19:30
确实是个问题啊

黑马币-29是什么鬼????
作者: Ak-47    时间: 2016-4-3 19:37
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);




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2