2013-02-05 20 views
1

我正试图通过读取给定扫描仪中的物品来构建商店。构造函数必须重复(直到项目名称为*)从给定的扫描仪对象读取项目并将其添加到其库存。如何通过扫描仪搜索并用空格分隔字符串?

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

@vishal_aim不知道如何分割它 – JustaBreitGuy

+0

它有帮助吗? http://docs.oracle.com/javase/6/docs/api/java/util/Scanner.html –

回答

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下面是项目的.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 + "]"; 
    } 




} 

键入所有库存键入“*”后(星)在最后它会列出所有输入的物品。