【发布时间】:2014-11-06 02:08:03
【问题描述】:
我正在尝试编写一个程序,以查看哪些数字显示了百万富翁中每个球的最佳结果(只是为了好玩,我知道它不能帮助您预测未来的任何事情)。
问题:
ArrayLists 不会从 BufferedReader 的输入中填充,但我可以将任何内容打印到控制台,只是不能将其添加到 Array 或 ArrayList。
我很抱歉这是多么草率和所有奇怪的命名:
public static void main(String[] args) {
MathStats mathStats = new MathStats();
getFileInfo(); //Same class as main.
System.out.println();
System.out.println(mathStats.num1.size());
//num1 should be populated after calling getFileInfo();
} //End of main
private static void getFileInfo() {
File listOfTickets = new File(**FILE**);
MathStats mathStats = new MathStats();
try {
BufferedReader getInfo = new BufferedReader(new FileReader(
listOfTickets));
String ticketInfo = getInfo.readLine();
for (int i = 0; ticketInfo != null; i++) {
ticketInfo.split("\n");
System.out.println(ticketInfo);
int a = Integer.parseInt(ticketInfo.substring(25,
27));
int b = Integer.parseInt(ticketInfo.substring(28,
30));
int c = Integer.parseInt(ticketInfo.substring(31,
33));
int d = Integer.parseInt(ticketInfo.substring(34,
36));
int e = Integer.parseInt(ticketInfo.substring(37,
39));
int f = Integer.parseInt(ticketInfo.substring(40,
42));
mathStats.setArrayValues(a, b, c, d, e, f);
mathStats.setCount(i);
ticketInfo = getInfo.readLine();
}
getInfo.close();
} catch (FileNotFoundException e) {
System.out.println("Can't find file");
System.exit(0);
} catch (IOException e) {
System.out.println("An I/O Error Occured");
System.exit(0);
}
}
setArrayValues 方法只是将每个相应的 int 添加到它的 ArrayList 或至少它的假设中。它使用普通的 list.add(a);添加每个 int。
问题,在main中测试每个ArrayList的大小时(调用该方法后)每次都返回0。
如果您想测试,这里有一些数据可以放入文本文件中(删除中间多余的行)
11/04/2014 Mega Millions 09-15-24-39-41[01],Megaplier®:X4
10/31/2014 Mega Millions 11-29-36-58-67[15],Megaplier®:X2
10/28/2014 Mega Millions 03-50-57-58-60[11],Megaplier®:X5
10/24/2014 Mega Millions 02-14-21-28-55[03],Megaplier®:X3
10/21/2014 百万富翁 05-35-37-41-66[11],Megaplier®:X5
10/17/2014 Mega Millions 21-31-43-56-60[12],Megaplier®:X4
这里是 setArrayValues
public void setArrayValues(int a, int b, int c, int d, int e, int f) {
num1.add(a);
num2.add(b);
num3.add(c);
num4.add(d);
num5.add(e);
num6.add(f);
}
【问题讨论】:
-
你能显示
setArrayValues的代码吗? -
你的 catch 块没有做任何异常。至少尝试添加打印堆栈跟踪。
-
@NikhilTalreja 我不明白为什么......“找不到文件”是不言自明的,我们通常不需要查看它发生在哪一行。
-
问题很可能出在
MathStats类中,但您对我们隐瞒了。 -
找不到文件是,但如果你把我提供的数据,把它扔到一个文本文件中,并使用我放置 FILE 的文本文件的路径,那么它将能够读取文件。
标签: java arraylist bufferedreader