これは注文のリストのようです。したがって、それらをさまざまな変数に格納する代わりに、次のようなクラスを持つことにより、それらをオブジェクトにカプセル化Order
します (ここでは OOP を考えてください)。
public class Order {
private String itemName;
private int quantity;
private double price;
public Order(String itemName, int quantity, double price) {
this.itemName = itemName;
this.quantity = quantity;
this.price = price;
}
// constructor overloading to help instantiate from Strings
public Order(String itemName, String quantity, String price) {
this (itemName, Integer.parseInt(quantity), Double.parseDouble(price));
}
// getters/setters
@Override
public String toString() { // to print Order values to console easily
return "{item = " + itemName +
", quantity = " + quantity +
", price = " + price + "}";
}
}
次に、ファイルの解析中にオブジェクトのインスタンスを入力Order
し (1 行 = 1 つのオブジェクトと考えてください)、それらを(注文の)Order
に追加します。Collection
AList
が良い選択のようです。
List<Order> listOfOrders = new ArrayList<Order>();
while(fileScanner.hasNextLine())
{
String line = fileScanner.nextLine();
String [] array = line.split(",");
for (int i = 0; i < array.length; i++)
{
// instantiate; initialize with passed params; add to list
listOfOrders.add(new Order(array[0], array[1], array[2]));
}
}
System.out.println(listOfOrders); // would use Order.toString()