如何使用多个分隔符将对象放入数组中

时间:2017-01-22 22:30:42

标签: java

我试图找出如何使用分隔符从文本文件源开始构建新对象。

我正在使用的txt数据示例:

  

“1种|佛瑞德|鱼| fredfish@gamer.net | Ithroeann:2 |劳瑞|纳什| laurieeenash@gmail.com | 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);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我认为您在询问如何处理您的文件有两个分隔符的事实 - > |分隔字段和:分隔包含字段的对象。

应该是直截了当的。请尝试以下方法:

以字符串形式读取整个文件内容。

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

将由以下内容分隔的对象分开:

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

创建一个新的对象空列表 - 玩家:

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

使用您的业务映射将每个对象转换为播放器,并将如此获得的每个播放器添加到上面的列表中。

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