0
我有下面的代碼,它使用scanner類從文件讀取輸入並使用可比較的接口對輸入進行排序。此代碼適用於固定的數組大小,但我想要計算文件中存在的行數。嘗試獲取文件中行號的數組概念
public class ReadItemData {
public static void main(String[] args) throws Exception {
Scanner aScanner = new Scanner(new FileReader(
"src//chapter11//Items.txt"));
double avg = 0;
double sum = 0;
Item[] itemArray = new Item[5];
while (aScanner.hasNext())
{
String code = aScanner.next();
String sku = aScanner.next();
double qty = aScanner.nextDouble();
itemArray[count] = new Item(code, sku, qty);
System.out.println(itemArray[i]);
i++;
}
Arrays.sort(itemArray[i]);
System.out.println();
for (Item it : itemArray)
{
System.out.println(it);
sum += qty;
}
avg = sum/5;
if(qty <= (avg - 10))
{
System.out.println("Quantity is 10 less than the average quantity");
}
}
}
class Item implements Comparable {
private int qty;
private String sku,code;
public Item(String code, String sku,int qty) {
this.code = code;
this.sku = sku;
this.qty = qty;
}
public String getCode() {
return code;
}
public String getSku() {
return sku;
}
public int getQty() {
return qty;
}
public int compareTo(Object o) {
Item i = (Item) o;
return (this.sku).compareTo(i.sku);
}
}
我試着聲明int變量計數,並將其傳遞給數組,但我得到ArrayIndexOutOfBoundsException異常
int count = 0;
Item[] itemArray = new Item[count];
還有一個問題,我面對的是我計算循環內的總和,但我我沒有得到預期的效果
我輸入文件
PAP ENT 82
WAR HOT 79
TIM JUT 92
BON BLA 76
BON MAG 45
數量的總和爲374,但在我的代碼中計算爲225,我無法弄清楚我在做錯的地方。
任何幫助表示讚賞。
謝謝!
我沒有其他的選擇,而不是使用數組。我可以知道我在初始化陣列時犯的錯誤嗎? – Sandy
你是什麼意思,你沒有選擇?這就是'ArrayList'類的用途。 –
@Sandy家庭作業? – jrowe08