扫描仪自动将第一个输入分配给空字符串,这是为什么?

Scanner automatically assigned first input to an empty string, why is that?

提问人:Cao Huu Khanh 提问时间:1/29/2023 最后编辑:AntoineBCao Huu Khanh 更新时间:1/29/2023 访问量:35

问:

我是一个初学者,所以如果我犯了一个明显的错误,请原谅我。我试图通过扫描器从用户那里获取输入来创建学生列表的 HashMap,但不知何故,扫描器跳过了第一个键并自动将其分配给空字符串?这是我的详细代码:

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner inputvalue = new Scanner(System.in);
    HashMap<Integer, String> studentName = new HashMap<Integer, String>();
    

    String student;
    int counter = 1;
    int classSize;

    System.out.println("Enter class size: ");
    classSize = inputvalue.nextInt();

    do {
        System.out.println("Enter " + counter + " student name: ");
        student = inputvalue.nextLine();
        studentName.put(counter, student);
        counter++;  
    } while(counter <= classSize);

    System.out.println(studentName);
}

我尝试改用 for 循环,但它也不起作用。请向我详细说明是什么让扫描仪跳过第一个键以及如何修复此错误。提前非常感谢你

循环 java.util.scanner 用户输入 do-while

评论


答: 暂无答案