Problema ao colocar dados em um Map utilizando o while e split()

2 respostas
Luis_Prado

O código é esse:

public static Map<String, String> processar(String arquivo) throws LeituraArquivoException, FileNotFoundException{
    File file = new File(arquivo);
    Scanner sc = new Scanner(file);
    while (sc.hasNextLine()){
    	String s = sc.nextLine();
    	String array[] = new String[1];
            array = s.split("->");
            mapaDados.put(array[0], array[1]);
    }
    return mapaDados;
    
}

O erro é arrayIndexOutOfBoundsException relacionado ao put array[1]. Não consigo resolver o problema. Se coloco o put com os dois arrays na posição zero ele funciona. Funciona também se eu tiro o while. Ai ele adiciona o array[0] e [1]. Mas com o while dá o erro mencionado acima… O que estou fazendo errado?

2 Respostas

Luis_Prado

Eu fiquei explorando pra ver onde ocorre o erro e pelo que entendi na segunda vez do loop ele adiciona uma String vazia. Simulei o loop escrevendo a sucessão de atividade e só na segunda repetição tem que ser put(array[0], array[0]) pois é justamente na segunda vez que ele adiciona uma String vazia! Espero que essa nova informação ajude a alguem a me ajudar! Sou inicioante ainda em Java por isso desconsiderem meu amadorismo…

Luis_Prado

Descobri o erro! No arquivo escrevi a ultima linha e dei enter. Assim ele considerou a ultima linha como linha escrita e por isso estava dando erro!

Criado 24 de julho de 2016
Ultima resposta 24 de jul. de 2016
Respostas 2
Participantes 1