我正在为棒球赛季开发一个统计跟踪器。我希望能够在程序中加载整个计划,使每个游戏成为一个相对简单的对象。
创建游戏对象不是问题。我想知道的是,实施时间表的最佳方法是什么?在团队类中,我有一个ArrayList计划。
我需要一种方法从文本文件加载计划信息,循环遍历它并为每一行创建一个游戏对象。如果这不是有效创建162个对象的最佳方式,请告诉我。
干杯
编辑:
游戏课非常简单:
public class Game implements Serializable{
Date gameDate;
Team team;
public int runsScored, runsAllowed;
public ArrayList<BallPlayer> lineup = new ArrayList<BallPlayer>();
public ArrayList<Pitcher> pitchers = new ArrayList<Pitcher>();
public Pitcher starter;
String opponent;
boolean homeAway;
boolean result;
public Game(Team gTeam, Pitcher gStarter, String gOpponent, String homeOrAway, Date gDate){
this.team = gTeam;
this.starter = gStarter;
this.opponent = gOpponent;
if(homeOrAway.equalsIgnoreCase("home")){this.homeAway = true;}
this.runsScored = 0;
this.runsAllowed = 0;
gameDate = gDate;
}
public String getOpponent(){return opponent;}
public void setOpponent(String o){this.opponent = o;}
public boolean getHomeAway(){return homeAway;}
public void setHomeAway(String ho){if(ho.equalsIgnoreCase("home")){this.homeAway = true;}else{this.homeAway = false;}}
}
答案 0 :(得分:0)
这是一个相当普遍的问题,但我想我会就你最初如何处理这个问题给你一些想法。
对于您的模型,您可以从以下内容开始:
GameVO (id, home team id (TeamVO), away team id (TeamVO), location id, schedule_id)
TeamVO (id, mascot, name, hometown, etc.)
LocationVO (id, city, state, stadium name, etc.)
PlayerVO(id, position, fname, lname, number, team_id, array_of_stat_ids)
StatVO(id, game_id, player_id, base_hits, home_runs, rbi, strike_out, etc)
ScheduleVO(id, location_id, home_team_id, away_team_id, play_time)
对于文本文件,我建议您熟悉Regular Expressions。正则表达式允许您读取数据字符串并根据您特定的模式提取数据。您的文本文件将是固定长度的文本文件,逗号分隔值(CSV)或其他一些格式(首先要确保您了解数据的结构)。确定要提取的模式后,创建正则表达式以匹配每一行并提取适当的值。这是一个练习Regex
的好地方最后,在对对象进行串行化时,请查看XStream for .NET等序列化程序。我喜欢这个库的Java版本,因为它允许您快速将java对象转换为XML / json并再次返回。