Java 试图获取文件中行数的数组概念
我有下面的代码,它使用scanner类从文件中读取输入,并使用可比较的接口对输入进行排序。这段代码适用于固定的数组大小,但我想计算文件中的行数Java 试图获取文件中行数的数组概念,java,arrays,Java,Arrays,我有下面的代码,它使用scanner类从文件中读取输入,并使用可比较的接口对输入进行排序。这段代码适用于固定的数组大小,但我想计算文件中的行数 public class ReadItemData { public static void main(String[] args) throws Exception { Scanner aScanner = new Scanner(new FileReader( "src//chapter11
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);
}
}
我面临的另一个问题是,我正在计算循环中的和,但没有得到期望的结果
我的输入文件
PAP ENT 82
WAR HOT 79
TIM JUT 92
BON BLA 76
BON MAG 45
数量之和为374,但在我的代码中计算为225,我无法找出我做错了什么
感谢您的帮助
谢谢 不要将它们添加到固定数组中,而是将它们添加到java中。填充完列表后,使用listClass.size()检索列表的大小 下面是一些实现:
List<Item> itemList = new List<Item>();
while (aScanner.hasNext())
{
String code = aScanner.next();
String sku = aScanner.next();
double qty = aScanner.nextDouble();
itemList.add(new Item(code, sku, qty));
System.out.println(itemList.get(i));
i++;
}
除了使用数组,我别无选择。我能知道我在初始化数组时犯了什么错误吗?你说你别无选择是什么意思?这就是
ArrayList
类的作用。哦,对了。一位好心的教授告诉学生他们必须用错误的方法解决问题。耶!是的,这是一个assignment@Sandy如果你没有选择,你将不得不动态地创建一个数组并复制它,或者使它比你想象的条目数量更大。还要在aScanner.next()循环中创建一个计数器(i++中已经有一个计数器),它将告诉您该数组中有多少项。
List<Item> itemList = new List<Item>();
while (aScanner.hasNext())
{
String code = aScanner.next();
String sku = aScanner.next();
double qty = aScanner.nextDouble();
itemList.add(new Item(code, sku, qty));
System.out.println(itemList.get(i));
i++;
}
for (Item it : itemArray)
{
System.out.println(it);
//You must get the iterated item quantity (I assume you don't have setters and
//getters
sum += it.qty;
}