2017-01-22 38 views
0

我試圖找出如何使用分隔符來從一個文本文件源開始一個新對象的構造。如何使用多個分隔符把對象到數組

,我現在用的是TXT數據的例子:

「1 |弗雷德|魚| [email protected] | Ithroeann:2 |勞瑞|納什| [email protected] | Mazzzap: 「

這是我迄今爲止創建數組中的第一個對象,但我想知道如何使用」:「作爲第二個分隔符來構建第二個對象。 我正在考慮使用一個循環來自動完成這個過程。

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

'字符串#split'始終是一個很好的朋友。你可以在'gamerTag'和'split(「:」)''上使用它。 –

+0

Sooo ...究竟是什麼問題?代碼不工作?也:我會強烈建議您關掉用於可變長度的輸入陣列(使用'Set'或'List'代替) –

回答

0

我想你問的是如何處理這個事實,即你的文件有兩個分隔符 - > |分隔字段和:分離包含字段的對象。

它應該是簡單的。嘗試以下操作:

閱讀字符串整個文件的內容。

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

單獨由分隔的對象:

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

創建對象的新的空列表 - 玩家:

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

轉換每個對象爲玩家通過使用您的業務映射並添加每個玩家的ob用於上面的列表。

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