Как прочитать файл в списки Java? - PullRequest
2 голосов
/ 18 февраля 2012

У меня очень странный файл в моей компании. Он был создан программой, написанной людьми давным-давно. Он содержит множество свойств вместе с пользователями, которые имеют эти свойства. Похоже ниже. Я должен прочитать этот файл построчно и разделить свойства и пользователей в два списка. Например, в первой строке все реквизиты должны быть в одном списке, а пользователи в квадратных скобках - в другом списке. количество пользователей постоянно меняется, и это усложняет мою задачу. может кто-нибудь предложить мне взломать его? Я ломаю голову от пары часов вместо этого. любые намеки были бы весьма заметны.

Properties,prop1,prop2,prop3,[user1,user2,user3,],prop4,prop5
Properties,prop1,prop2,prop3,[user1,user2,user3,user4,],prop4,prop5
Properties,prop1,prop2,prop3,[user1,],prop4,prop5
Properties,prop1,prop2,prop3,[user1,user2,],prop4,prop5
Properties,prop1,prop2,prop3,[user1,user2,user3,user4,user5,],prop4,prop5

1 Ответ

2 голосов
/ 18 февраля 2012

Я бы написал простой анализатор с конечным автоматом, где [ переключает вас на чтение пользователей, а ] переключает на чтение свойств.

Альтернативой является разделение строк двумя способами.

String line;
while((line = bufferedReader.readLine()) != null) {
    for(String parts: line.split("\\[")) {
        String[] userProps = parts.split("\\)");
        String users = userProps.length==1 ? "" : userProps[0];
        String props = userProps[userProps.length-1];
        // break up the individual users and props
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...