File reading in java spanning line specifies if exist

-1

I'm reading a file in java that has the following structure:

nomedapessoa;data de nascimentodependente1+tipodependente2+tipodependenteN+tipo

You may have none, one or more dependents on each line of the file. The problem is that I can not traverse all dependents on a line if it exists.

    if(linha.length() > 36) {
            // se linha maior que 36 possui dependentes
            String dependentes = linha.substring(36);
            // variavel dependentes recebe restante da linha com todos os dependentes 
            String tip = "01"+"02"+"03";        
            String[] vetor = dependentes.split (tip);
            //essa vetor serve para separar os dependentes

            String nomedep = "";
            String tipodep = "";
            int tipodec = 0; //variavel só para converter tipo


                for(int i = 0; i < vetor.length; i++) {
                //aqui pega somente o  primeiro dependente de todas as 
              //  pessoas e queria pegar de todos se existir e imprimir
                nomedep = vetor[i].substring(0,20);
                tipodep = vetor[i].substring(20,22);
                tipodec = Integer.parseInt(tipodep);
                System.out.println(nomedep +" "+ tipodec);
                }

        }
    
asked by anonymous 12.03.2018 / 15:38

1 answer

1

Use the split(String) and then remove the name and birth date from the beginning:

String linha = /* ... */;

String[] partes = linha.split(";");
String nome = partes[0];
String strData = partes[1];

List<String> dependentes = Arrays.asList(partes);
dependentes = dependentes.subList(2, dependentes.size());

for (String dependente : dependentes) {
    // ...
}

If this semicolon after the last dependent is always there, use dependentes.size() - 1 instead of just dependentes.size() .

    
12.03.2018 / 15:45