nextLine问题();

可能重复:
nextInt后使用nextLine时扫描仪出现问题

我正在尝试创建一个程序,让用户使用扫描仪将值输入到数组中。

但是,当程序要求学生的最近亲属时,它不会让用户输入任何内容并立即结束程序。

以下是我所做的代码:

if(index!=-1)
    {
        Function.print("Enter full name: ");
        stdName = input.nextLine();

        Function.print("Enter student no.: ");
        stdNo = input.nextLine();

        Function.print("Enter age: ");
        stdAge = input.nextInt();

        Function.print("Enter next of kin: ");
        stdKin = input.nextLine();

        Student newStd = new Student(stdName, stdNo, stdAge, stdKin);
        stdDetails[index] = newStd;
    }

我曾尝试使用next(); 但它只会采用用户输入的第一个字,这不是我想要的。 无论如何要解决这个问题吗?


当您按Enter键时,出现问题,这是一个换行符n字符。 nextInt()仅消费整数,但会跳过换行符n 。 为了解决这个问题,你可能需要在读取int之后添加一个额外的input.nextLine() ,这会消耗n

    Function.print("Enter age: ");
    stdAge = input.nextInt();
    input.nextLine();.

    // rest of the code


使input.nextLine();input.nextInt();后调用input.nextInt(); 直到行尾。

例:

Function.print("Enter age: ");
stdAge = input.nextInt();
input.nextLine();  //Call nextLine

Function.print("Enter next of kin: ");
stdKin = input.nextLine();
链接地址: http://www.djcxy.com/p/96065.html

上一篇: Issues with nextLine();

下一篇: Weird behaviour with Scanner#nextFloat