Разбор коллекции CACM на Java - PullRequest
0 голосов
/ 07 мая 2018

У меня проблема с парсином в коллекции CACM в Java.

Коллекция имеет следующий формат:

.I number
.T 
title
.A
authors
multiple authors allowed
.W
body
multiple lines of body allowed

Я пытаюсь извлечь каждое из полей с помощью этого метода extract :

public static String extract(char campo, String text,Boolean allowEmpty)
{
    String[] lines = text.split("\\r?\\n");
    /*for(String line:lines)
        System.out.println(line);*/
    StringBuilder builder = new StringBuilder();
    boolean start = false;
    boolean end = false;
    for(String l:lines)
    {
        System.out.println(l);
        //System.out.println(line.charAt(0));
        if((l.charAt(0) == '.') && (l.charAt(1) == campo))
        {
            System.out.println("Detectado campo "+l.charAt(1));
            start = true;
            builder.append(l.substring(2)).append("\n");
        }
        else
        {   
            if(l.charAt(0) == '.')
            {
                //System.out.println(campo);
                break;
            }
            else if(start)
                builder.append(l); 
        }
    }
    return builder.toString();
}

Но я не знаю почему, он только извлекает поле .I , и я не могу заставить его работать с любым другим полем. Я не знаю, где исправить код или логичное приближение. Есть ли в этом ключ?

Заранее спасибо.

...