2017-01-22 6 views
0

区切り記号を使用してテキストファイルソースから新しいオブジェクトの構築を開始する方法を理解しようとしています。複数の区切り文字を使用してオブジェクトを配列に配置する方法

私が使用していTXTデータの例:

「1 |フレッド|魚| [email protected] | Ithroeann:2 |ローリー|ナッシュ| [email protected] | Mazzzap: "

これはこれまでアレイの最初のオブジェクトを作成していましたが、2番目の区切り文字として": "を使用して2番目のオブジェクトを作成する方法が不思議です。 私はループを使ってこのプロセスを自動化することを考えています。

public class PlayerReader { 

    public static void main(String[] args) { 
     Scanner input = new Scanner(new File("commandline.txt")); 
     input.useDelimiter("|"); 
     Player[] players = new Player[0]; 
     while (input.hasNext()) { 
      String id = input.next(); 
      String firstName = input.next(); 
      String lastName = input.next(); 
      String emailAddress = input.next(); 
      String gamerTag = input.next(); 
      Player newPlayer = new Player(id, firstName, lastName, emailAddress, gamerTag); 
      players = addPlayer(players, newPlayer); 
     } 
    } 
} 
+0

'String#split'は常に良い友達です。 'gamerTag'と' split( ":") 'でそれを使うことができます。 –

+0

Sooo ...正確に何が問題なのですか?コードが機能していないのですか?また、私はあなたに可変長入力の配列をオフにすることを強く勧めます( 'Set'または' List'を代わりに使用してください) –

答えて

0

は、私はあなたがあなたのファイルが2つの区切り文字を持っているという事実に対処する方法について尋ねていると思います - > |フィールドの分離と、フィールドを含むオブジェクトの分離。

これは簡単です。以下を試してください:

文字列内のファイル全体の内容を読み取ります。

List<Player> players = new ArrayList<Player>();

がでプレーヤーに各オブジェクトを変換します - 選手

String[] objects = content.split(":");

あなたのオブジェクトの新しい空のリストを作成します:で区切られたオブジェクトは、別の

String content = new String(Files.readAllBytes(Paths.get("commandline.txt")));

あなたのビジネスマッピングを使用し、各プレーヤーを追加する上記のリストに載っています。

for (String object : objects) { 
    String[] fields = object.split("|"); 
    player.add(new Player(fields[0], fields[1], ...); 
} 
関連する問題