Java 库存数组

Java 库存数组,java,arrays,file,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 import java.util.Scanner; import java.io.*; pu

我正在做一个程序,作为书店库存的一种类型。程序从如下文本文件中读取信息列表:

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
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();
            }

    }
}
第一个数字表示ISBN编号,为字符串类型;第二个数字表示价格,为双精度类型;最后一个数字表示库存的份数,为整数

程序应该读入这些信息,并将其存储到一个数组中(后面还有更多步骤,但这是我遇到的第一个问题)

到目前为止,我的代码如下所示:

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
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;
但我相信你可能会运动,这不起作用。如有任何建议,将不胜感激。我还是个新手,已经有一段时间没有使用数组了

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

从那里,你可以拉出每根绳子,并将其围绕空格分开

String[] parts = books[0].split(" ");
现在,您可以将每个零件强制转换为其各自的类型

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

注意,这是一个很长的路要走,如果你的文件包含不同数量的书籍,会导致问题。此外,要对所有书籍执行此操作,需要一些循环。

hello,您是否获得isbn=fin.next()的值;price=fin.nextDouble();拷贝数=fin.nextInt();正确地我的意思是,你得到了正确的值吗?似乎你应该有一个图书类,一个可以保存ISBN编号、价格和库存数量的类。然后你可以将书籍对象添加到你的书籍数组中,或者更好,添加到你的
列表中
@Niang,我非常专注于将所有内容都放入一个数组中,我甚至没有想到要打印出单个值。当编写代码并在while循环后为每个值添加print语句时,我得到了正确的值,但只打印文件的最后一行。所以是和否哈。@Bethtaner,耶,
Println
检查值是检查/调试代码的一个很好的工具。不管怎样,你喜欢这样做吗?
(fin.hasNext()){isbn=fin.next();price=fin.nextDouble();
copies=fin.nextInt();System.out.println(…);//here}
你说得很对@hovercraftfullofels,这是后面的,你甚至没有想到这会影响到这部分代码。在编写整个程序之前,我喜欢在编写过程中对代码的每一部分进行测试,比如测试以确保在本例中正确加载了数组,而编写整个程序只是为了出错,而不知道我到底出了什么错。