黑马程序员技术交流社区

标题: 关于Eclipse的一个小BUG [打印本页]

作者: zx0210    时间: 2015-9-14 00:48
标题: 关于Eclipse的一个小BUG
本帖最后由 zx0210 于 2015-9-14 00:50 编辑

今天在Eclipse的console上演示的时候,多次输入的时候在输入了第一个字符按下enter之后,输入第二个字符的时候就出现bug了
  1. <div>import java.util.Scanner;

  2. public class StudentsTest {
  3.         public static void main(String[] args) {
  4.                 Student[] stu = new Student[5];
  5.                 System.out.println("学生信息录入开始:");
  6.                 for (int x = 0; x < stu.length; x++) {
  7.                         @SuppressWarnings("resource")
  8.                         Scanner sc = new Scanner(System.in);
  9.                         System.out.print("请输入第" + (x + 1) + "个学生的姓名:");
  10.                         String name = sc.nextLine();
  11.                         System.out.print("请输入第" + (x + 1) + "个学生的年龄:");
  12.                         int age = sc.nextInt();
  13.                         Student s = new Student(name,age);
  14.                         stu[x] = s;
  15.                 }
  16.                 System.out.println("学生数据录入完毕!");
  17.                 System.out.println("开始打印学生数据:");
  18.                 System.out.println("\t" + "学生姓名\t\t" + "学生年龄");
  19.                 for (int i = 0; i < stu.length; i++) {
  20.                         System.out.println("\t" + stu[i].getName() + "\t\t" + stu[i].getAge());
  21.                 }
  22.         }
  23. }
  24. </div>
复制代码




QQ截图20150914004309.png (11.74 KB, 下载次数: 13)

QQ截图20150914004309.png

作者: pegasus    时间: 2015-9-14 09:39
给你说两种解决办法,第一种将sc.nextLine()变成sc.next()。第二种在sc.nextInt()额外添加一句String ssss = sc.nextLine();
原因:
public String nextLine()
此扫描器执行当前行,并返回跳过的输入信息。
此方法返回当前行的其余部分,不包括结尾处的行分隔符。当前位置移至下一行的行首。
你使用nextInt()的时候,读取一定是数值型的字符,就是说你会输入42这样的,然后就按换行符
接着使用nextLine(),它是读到行分隔符就结束,而行分隔符前已经没信息,所以没有读到任何可返回的信息。当你再输入字符串时,nextInt将会报错,因为字符串转化不成Integer
作者: zx0210    时间: 2015-9-14 23:44
pegasus 发表于 2015-9-14 09:39
给你说两种解决办法,第一种将sc.nextLine()变成sc.next()。第二种在sc.nextInt()额外添加一句String ssss  ...

解决的非常完美,灰常感谢,受教了!!




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