库存数组

时间:2014-07-21 00:13:31

标签: java arrays file

我正在开发一个充当书店库存类型的程序。该程序从文本文件中读取信息列表,如下所示:

1234567 31.67 0
1234444 98.50 4
1235555 27.89 2
1235566 102.39 6
1240000 75.65 4
1247761 19.95 12
1248898 155.91 0
1356114 6.95 17
1698304 45.95 3
281982X 31.90 5

第一个数字代表ISBN号,是String类型,第二个数字是价格,是double类型,最终数字是库存中的副本数,是一个int。

该程序应该读取此信息,将其存储到一个数组中(更多步骤如下,但这是我遇到的第一件事)。

到目前为止我的代码看起来像这样:

import java.util.Scanner;
import java.io.*;

public class Store {
    public static void main(String[] args) {
        String[] books = new String[15];
        String product;
        readInventory();
    }

    public static void readInventory() {
        java.io.File file = new java.io.File("../instr/prog4.dat");
        Scanner fin = new Scanner(file);
        String isbn;
        double price;
        int copies; 
        String[] books = new String[14];
            while (fin.hasNext()) {
                 isbn = fin.next();
                 price = fin.nextDouble();
                 copies = fin.nextInt();
            }

    }
}

我无法弄清楚如何将这三种不同的信息存储在一个单独的数组中(对于文件中描述的每个项目)。

我有一个想法是创造这样的东西,

String product = (isbn + price + copies);

然后尝试将其添加到数组中,如

String[] books = product;

但是我确信你可以运动,但这并没有奏效。任何建议将不胜感激。我还是很陌生,自从我使用数组以来已经有一段时间了。

1 个答案:

答案 0 :(得分:1)

I'm having trouble figuring out how to store these three different pieces 
of information into a single line

如何使用nextLine()

String[] books = new String[14];
int index = 0;

while (fin.hasNextLine()) {
    books[index] = fin.nextLine();
    index++;
}

从那里你可以拉出每个String并将它分开在空格

String[] parts = books[0].split(" ");

现在您可以将每个部分转换为各自的类型

String isbn = parts[0];
double price = Double.parseDouble(parts[1]);
int numberInStock = Integer.parseInt(parts[2]);

请注意这是一个漫长的过程,如果您的文件包含可变数量的书籍,将导致问题。此外,为所有书籍执行此操作将需要一些循环。