0

我刚刚开始,我很难将此文本文件加载到不同的ArrayLists. “-----”显然打破了每个单独的角色。我想创建一个类Roles并为每个类创建实例,但我仍然没有弄清楚它是如何正常工作的。另外,创建一个List <Role>会比List <ArrayList<String>>? 我知道这是一个基本问题,但经过数小时的工作后我无法弄清楚。谢谢!

Leader
1   Superman    DC
2   Captain America Marvel
3   Professor X Marvel
4   The Shoveler    Mystery Men

Brawn
1   Hulk    Marvel
2   Wolverine   Marvel
3   The Thing   Marvel
4   Beast   Marvel
5   Thor    Marvel
6   Mr. Furious Mystery Men
7   Mr. Incredible  Pixar

Gadgets
1   Batman  DC
2   Iron Man    Marvel
3   Spiderman   Marvel
4   Green Lantern   DC

Female Influence
1   Wonder Woman    DC
2   Jean Gray   Marvel
3   Emma Frost  Marvel
4   Rogue   Marvel
5   Elastigirl  Pixar

Bad Guy
1   The Joker   DC
2   Magneto Marvel
3   Lex Luthor  DC
4   Dr. Doom    Marvel
5   Riddler DC
6   Syndrome    Pixar
4

1 回答 1

1

这是一种方法。

创建一个包含整数、字符串和字符串的类。我们称之为人。

现在,您的数据结构将是HashMap<string, ArrayList<Person>>

有一个字符串作为您当前正在填充的列表的名称,ListName。

有一个ArrayList<Person>您当前正在填充的列表,ListContents。

遍历文件的行。

1)如果该行为空白,则跳过

2)如果该行不以数字开头,我们将开始一个新列表 - 将 ListContents(如果它不为空)插入到键 ListName 下的 hashmap 中,将 ListName 设置为该行的内容(例如“Brawn”)和使 ListContents 成为一个新的空 ArrayList。

3) 如果它以数字开头,则使用正则表达式、String.Split 或任何您喜欢的方式将其拆分(希望您可以在选项卡上拆分它,否则将需要一个非常聪明的程序来确定空格何时属于该名称当它们开始属于连续性时!!),将第一个值解析为 int,并从这些值中创建一个新的 Person ,将其插入到当前列表中。

现在,每个标题都有一个人员列表,并且每个列表都由其在哈希图中的标题标题进行索引。

于 2013-02-10T01:06:43.190 回答