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

これを行う1つの方法を次に示します。

整数、文字列、および文字列を保持するクラスを作成します。それを人と呼びましょう。

これで、データ構造は次のようになりますHashMap<string, ArrayList<Person>>

現在入力しているリストの名前、ListName の文字列を用意します。

ArrayList<Person>現在入力しているリストの ListContents を用意します。

ファイルの行を繰り返します。

1) 行が空白の場合はスキップします

2) 行が数字で始まらない場合、新しいリストを開始します - ListContents (空でない場合) をキー ListName の下のハッシュマップに挿入し、ListName をこの行の内容 (例: "Brawn") に設定し、 ListContents を新しい空の ArrayList にします。

3)数字で始まる場合は、正規表現、String.Split、または好きなものを使用して分割します(タブで分割できることを願っています。そうしないと、スペースがいつ名前に属するかを理解するのに非常にスマートなプログラムが必要になります)そしてそれらが連続性に属し始めると!!)、最初の値を int として解析し、これらの値から新しい Person を作成し、それを現在のリストに挿入します。

これで、ヘッダーごとに 1 つの人のリストが作成され、すべてのリストはハッシュマップのヘッダー タイトルによってインデックス付けされます。

于 2013-02-10T01:06:43.190 に答える