黑马程序员技术交流社区

标题: 学java基础day12.02课的Scanner录入的小问题有悟 [打印本页]

作者: 追忆睡梦已醒    时间: 2016-3-17 15:27
标题: 学java基础day12.02课的Scanner录入的小问题有悟
本帖最后由 追忆睡梦已醒 于 2016-3-17 15:36 编辑

老师上课的代码如下:
Scanner sc = new Scanner(System.in);
                System.out.println("请输入第一个整数:");
                int i = sc.nextInt();
                System.out.println("请输入第二个字符串:");
                String line2 = sc.nextLine();
                System.out.println("i = " + i + ", line2 = " + line2);输出结果如下:
                    请输入第一个整数:
                   12
                   请输入第二个字符串:
                   i = 12, line2 =
这个输出的结果是有点问题哦!老师也给出了解决的办法(解决方案
                 * 1,创建两次对象,但是浪费空间
                 * 2,键盘录入的都是字符串,都用nextLine方法,后面我们会学习讲整数字符串转换成整数的方法)


但是我发现只要把录入int类型的数和String类型的字符串呼唤下位置就可以了。代码如下:
Scanner sc = new Scanner(System.in);
               
               System.out.println("请输入第一个字符串:");
                String line2 = sc.nextLine();
               
               System.out.println("请输入第二个整数:");
                int i = sc.nextInt();
               
                System.out.println("i = " + i + ", line2 = " + line2);
输出结果如下:

请输入第一个字符串:
heima
请输入第二个整数:
123
i = 123, line2 = heima



无意之中的发现,代码没有修改只是调换了下位置,还希望各位技术大牛多多赐教~~~~~~


作者: monZhang    时间: 2016-3-17 22:37
你真正知道第一种为什么不行,就知道第二种是可以的了,根本不用无意发现。。。
作者: liangsai    时间: 2016-3-19 19:51
我也不懂,为什么第一种在输入数字后,直接跳过了第二次输入,解决方法是有了,但是原因还是不清楚
作者: 妄想年少轻狂    时间: 2016-3-19 20:20
等我学到这里是我要注意一下




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