我正在尝试通过读取给定扫描仪中的项目来构建商店。构造函数必须重复(直到项目名称为*)从给定的扫描程序对象中读取项目并将其添加到其库存中。
BreadLoaf 2.75 25
我需要将这样的字符串分成“Breadloaf”“2.75”和“25”。然后转到下一行并执行相同的操作,直到它显示为“*”
public class Store {
private ArrayList<Item> inventory;
// CONSTRUCTORS
/*
* Constructs a store without any items in its inventory.
*/
public Store() {
}
/*
* Constructs a store by reading items from a given Scanner. The constructor
* must repeatedly (until item name is *) read items from the given scanner
* object and add it to its inventory. Here is an example of the data (that
* has three items) that could be entered for reading from the supplied
* scanner:
*/
public Store(Scanner keyboard) {
while(keyboard != null){
}
}
答案 0 :(得分:1)
尝试以下代码。它最近检查了。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class MyClient {
public static void main(String args[]) {
List<Item> inventory = new ArrayList<Item>();
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String s1 = sc.nextLine();
if (s1.equals("*")) {
break;
} else {
Scanner ls = new Scanner(s1);
while (ls.hasNext()) {
Item item = new Item(ls.next(), ls.nextFloat(), ls.nextInt());
inventory.add(item);
}
}
}
System.out.println(inventory);
}
}
现在你需要创建一个Item.java,它是Item .java
public class Item {
private String name;
private int quanity;
private float price;
public Item(String name, float price, int quanity) {
this.name = name;
this.price = price;
this.quanity = quanity;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getQuanity() {
return quanity;
}
public void setQuanity(int quanity) {
this.quanity = quanity;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
@Override
public String toString() {
return "Item [name=" + name + ", quanity=" + quanity + ", price="
+ price + "]";
}
}
在最后输入所有库存类型“*”(星号)后,它将列出所有输入的项目。