您好,我正在为大学进行一个 Java 项目,我应该在其中分析扑克牌。我在 txt 日志文件中发现了一些扑克牌。
它们通常看起来像这样:
PokerStars Zoom Hand #86981279921: Hold'em No Limit ($0.10/$0.25 USD) - 2012/09/30 23:49:51 ET
Table 'Whirlpool Zoom 40-100 bb' 9-max Seat #1 is the button
Seat 1: lgwong ($30.99 in chips)
Seat 2: hastyboots ($28.61 in chips)
Seat 3: seula i ($25.31 in chips)
Seat 4: fr_kevin01 ($31.81 in chips)
Seat 5: limey05 ($27.45 in chips)
Seat 6: sanlu ($24.65 in chips)
Seat 7: Masterfrank ($25.35 in chips)
Seat 8: Refu$e2Lose ($33.23 in chips)
Seat 9: 1pepepe0114 ($37.62 in chips)
hastyboots: posts small blind $0.10
seula i: posts big blind $0.25
*** HOLE CARDS ***
fr_kevin01: folds
limey05: folds
sanlu: folds
Masterfrank: folds
Refu$e2Lose: folds
1pepepe0114: folds
lgwong: folds
hastyboots: folds
Uncalled bet ($0.15) returned to seula i
seula i collected $0.20 from pot
seula i: doesn't show hand
*** SUMMARY ***
Total pot $0.20 | Rake $0
Seat 1: lgwong (button) folded before Flop (didn't bet)
Seat 2: hastyboots (small blind) folded before Flop
Seat 3: seula i (big blind) collected ($0.20)
Seat 4: fr_kevin01 folded before Flop (didn't bet)
Seat 5: limey05 folded before Flop (didn't bet)
Seat 6: sanlu folded before Flop (didn't bet)
Seat 7: Masterfrank folded before Flop (didn't bet)
Seat 8: Refu$e2Lose folded before Flop (didn't bet)
Seat 9: 1pepepe0114 folded before Flop (didn't bet)
我的问题是我不确定如何继续解析日志文件: 我唯一知道的是“手动”逐行扫描特定字符或符号,但我担心这需要详尽的错误处理。
所以我想知道是否有其他技术或更好的方法来解析这些扑克牌?
非常感谢您的帮助
编辑:对“数据挖掘”感到抱歉,因为它不是问题的一部分。
EDIT2:我也在寻找一些 Java 方法来执行与 C++ 相同的操作
例如: 在 C++ 中读取 5 个字符/直到 # 符号为:myfile.getline(store_in_this_var,5,'#'),您能建议我一些 Java 方法来执行相同的操作吗?
最佳答案
您可能需要按照您所说的去做:
逐行查找行首的字符。
我编写了一个类似的应用程序,用于分析几年前 FullTilt Poker 的历史文件...
我做了完全相同的事情,而且效果很好。
<小时/>编辑:
关于java - 扑克手牌 - 用 Java 解析日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13260729/