问题是
编写方法
readStock(String[] sAr, double[] pAr, int[] qAr)
以从名为“stock.txt”的文件中读取以下详细信息。
所以我创建了包含
的股票文件pillow 14.50 30
Sheet 43 40
Quilt 52.50 40
Set 100 200
我做这个方法
public static void readStock(String[] sAr, double[] pAr, int[] qAr) throws FileNotFoundException
{
Scanner input = new Scanner(new FileReader("stock.txt")) ;
int i = 0;
while (input.hasNext())
{
sAr[i]= input.next();
pAr[i] = input.nextDouble();
qAr[i] =input.nextInt();
i++;
}
input.close();
System.out.print("ITEM"+" "+"Price"+" "+"Quantity");
for (i=0;i<qAr.length;i++)
{
System.out.println(sAr[i]+" "+pAr[i]+" "+qAr[i]+"");
}
}
但我不知道怎么称呼它?
我做了
public static void main(String[] args)
{
readStock();
}
}
但是有错误。
答案 0 :(得分:0)
您需要在方法签名中使用3个参数,3个数组,因此您需要将它们传递给方法。您可以这样做:readStock(new String[4], new double[4], new int[4]);
但是,使用此设计,您需要知道文件包含多少行(因为您需要创建具有适当大小的数组)。要使其适用于任何文件长度,只需用列表替换数组:
public static void readStock(List<String> names, List<Double> prices, List<Integer> quantity) throws FileNotFoundException { Scanner input = new Scanner(new FileReader("stock.txt")) ; while (input.hasNext()) { names.add(input.next()); prices.add(input.nextDouble()); quantity.add(input.nextInt()); } input.close(); System.out.print("ITEM"+" "+"Price"+" "+"Quantity"); for (int i=0; i<names.size(); i++) { System.out.println(names.get(i)+" "+prices.get(i)+" "+quantity.get(i)+""); } }
列表可以在添加元素时扩展其大小,并且没有足够的空间供他使用。要创建新列表,您可以使用例如new ArrayList<String>()
答案 1 :(得分:0)
您应该传递3个相应的参数,在您的情况下它们是String[] sAr, double[] pAr, int[] qAr
。因此,您应该执行readStock(sAr, pAr, qAr);