我正在开发一个充当书店库存类型的程序。该程序从文本文件中读取信息列表,如下所示:
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;
但是我确信你可以运动,但这并没有奏效。任何建议将不胜感激。我还是很陌生,自从我使用数组以来已经有一段时间了。
答案 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]);
请注意这是一个漫长的过程,如果您的文件包含可变数量的书籍,将导致问题。此外,为所有书籍执行此操作将需要一些循环。