这个问题在这里已经有答案了:
扫描仪在使用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
啊啊啊
上面两行是空的
1条答案
按热度按时间kx5bkwkv1#
你需要打电话
.nextLine()
之后.nextDouble()
使用换行符。