Scanner.nextLine()的多种用途问题;

时间:2015-02-18 23:12:29

标签: java eclipse java.util.scanner

所以,我有一些代码,简化后就是:

import java.util.scanner

private Scanner input; 

int enterInteger()
{
    System.out.println("Enter the quantity");
    return input.nextInt();
}
String enterString()
{
    return input.nextLine();
}


void main()
{
    System.out.println("Enter option: 1) Add Quantity\n2)Edit Item");
    String input = enterString();
    switch (input)
    {
        case "1":
            enterInteger();
            break;
        case "2":
            //Do whatever
            break;
        default:
            System.out.println("Invalid!");
            main();
            break;
    }
}

因此,每当用户将选项输入为1时,它会加载请求用户的enterInteger()并返回一个整数。

但是,当发生这种情况时,用户输入整数并按Enter键,然后代码开始执行default:情况。当我添加断点时,选项的值是"",这显然是default:执行的原因,但我无法看到如何阻止它。

我知道这是愚蠢的,所以谢谢你。

1 个答案:

答案 0 :(得分:0)

我还不知道原因,但过去我只需要使用nextLine()并在必要时解析Integer.parseInt()。

顺便说一句,您还没有初始化扫描仪。

Scanner input = new Scanner(System.in);