我正在开发一个Java项目,用于排序物品。然而,在我的代码中,循环遍历一些标记化的术语并将它们分配给自定义Items类中的值似乎不起作用。
代码:
public void tokenizeTerms(String content) {
String[] tokenizedTerms = content.split(" ");
Item[] itemArray = new Item[tokenizedTerms.length/3];
Item fillItem = new Item();
fillItem.setName("fillItem");
fillItem.setPrice(0.00);
fillItem.setQuantity(1);
Arrays.fill(itemArray, fillItem);
int currToken = 0;
for(int i = 0; i < itemArray.length; i++) {
itemArray[i].setName(tokenizedTerms[currToken]);
currToken++;
try {
int foo = Integer.parseInt(tokenizedTerms[currToken]);
itemArray[i].setQuantity(foo);
currToken++;
double moo = Double.parseDouble(tokenizedTerms[currToken]);
itemArray[i].setPrice(moo);
currToken++;
} catch (Exception e) {
System.out.println("Error parsing data.");
}
}
this.items = itemArray;
}
物品类别:
public class Item {
private String name;
private int quantity;
private double price;
public void setName (String name) {
this.name = name;
}
public String getName () {
return this.name;
}
public void setQuantity (int quantity) {
this.quantity = quantity;
}
public int getQuantity () {
return this.quantity;
}
public void setPrice (double price) {
this.price = price;
}
public double getPrice () {
return this.price;
}
}
当我运行tokenize terms方法并打印itemArray中每个项的值时,我会得到一组看起来像这样的项目。
名称:书籍 数量:14 价格:856.89
名称:书籍 数量:14 价格:856.89
名称:书籍 数量:14 价格:856.89
然而,我知道这不应该发生,因为
String[] tokenizedTerms
看起来像这样:[CD, 32, 459.2, T-Shirt, 22, 650.8, Book, 14, 856.89]