nextline()方法保存空字符串

6g8kf2rb  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(295)

这个问题在这里已经有答案了

扫描仪在使用next()或nextfoo()后跳过nextline()(21个答案)
12个月前关门了。
我知道使用nextint()首先可以解决问题,但是任务要求我这样做。使用next()也是不可接受的解决方案。
我有一个for循环来创建3个对象,并设置它们的属性名和价格第一次执行可以正常工作,但第二次和第三次将空字符串保存到我的itemslist[i].setname(keyboard.nextline())。
如何解决这个问题?

for (int i = 0; i < itemsList.length; i++) { // for loop iterate 3 times
        itemsList[i] = new Item(); // Create new object every time the loop iterate
        System.out.println("Enter an item's name");
        itemsList[i].setName(keyBoard.nextLine());
        keyBoard.nextLine(); // To avoid the skip line that is done by the nextLine() method
        System.out.println("Enter an item's price");
        itemsList[i].setPrice(keyBoard.nextDouble());
    }

//方法来显示结果

public static void displayItemsName(Item[] items){
    for (int i = 0; i < items.length; i++) {
        System.out.println(items[i].getName());
    }
}

执行结果
输入项目名称
啊啊啊
输入项目价格
45
输入项目名称
gggg公司
输入项目价格
45
输入项目名称
豌豆
输入项目价格
33
啊啊啊
上面两行是空的

kx5bkwkv

kx5bkwkv1#

你需要打电话 .nextLine() 之后 .nextDouble() 使用换行符。

itemsList[i].setPrice(keyBoard.nextDouble());
keyBoard.nextLine(); // add this in your for loop

相关问题