用Java制作乐透程序

时间:2009-06-27 16:27:13

标签: java excel

我想知道,我需要看一下如何制作一个可以从excel文件中读取的程序

我正在考虑制作一个程序,该程序使用excel电子表格并读取它们并生成尚未发生的组合列表

它只是为了一点乐趣,但可能是一个很好的挑战

感谢

6 个答案:

答案 0 :(得分:4)

将Excel数据导入Java的直接途径当然是POI。非常稳定,优秀的库,让您和Excel一起工作的低级内部。

值得注意的是Busy Developer's Guide to POI,这应该有助于减轻一些初期的痛苦。

如果您对学习POI和进行简单的Java练习更感兴趣,那么这听起来很公平。更有趣的问题将是如何显示数百万尚未发生的组合,以及如何从数据结构的角度来看待这一点(提示:使用哈希表查找和生成的混合来保持内存开销到最小值)。

如果您想认真对待这个问题,请问问自己,Excel文件是否是此类数据的良好存储机制。这就是你正在做的事情:使用Excel作为数据存储。有更好的选择。

答案 1 :(得分:3)

如果你必须使用Excel,那么Andy Khan的JExcel就是你的选择。我发现它远远优于POI。

就我个人而言,我看不到它在这里给你买什么。您可以在平面文件中生成所有组合,或者如果需要,可以使用真实数据库。除了熟悉和无处不在之外,用Excel绘制的是什么?

答案 2 :(得分:3)

为什么要选择Excel路线?

如果关键是要在Java中玩得开心,Excel必须有一些方法从数据中生成逗号分隔文件。只需阅读并做任何你想做的事。

答案 3 :(得分:0)

这篇文章可能对您有帮助......

Read MS Excel files with Java

答案 4 :(得分:0)

正如其他人所说,有几个图书馆和几个帖子可供您开始使用。我只想给你两种方法来实现你的目标。

对于“生成尚未发生的组合列表”的情况

我理解这个目标,因为你有绘制的历史,并且你想要生成一堆历史上从未发生过的随机数集。基本上你首先需要一个随机数发生器并生成彩票号码。然后拿这组数字和 试着在历史数据中找到它。如果你找到它,只需重新开始并生成一个新的。根据我对这个问题的评论你几乎有机会说(5200 / 47M)你在历史列表中找到你的号码。重复这整个过程,直到你得到足够的数字。

针对“生成已经发生的组合列表”的情况

您基本上需要在历史列表中找到重复项。从每个历史事件中创建一个Set<Integer>,然后开始将其添加到另一组Set<Set<Integer>>。 如果在处理期间已经添加了已添加的数字集,则会从后一组的add方法获得错误返回。然后你只需打印或记住重复的数字集。

答案 5 :(得分:0)

使用逗号分隔文件而不是本机Excel文件。会让你的生活变得更轻松:)