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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zx0210 中级黑马   /  2015-9-14 00:48  /  700 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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

2 个回复

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

解决的非常完美,灰常感谢,受教了!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马