Duvida com Strings [RESOLVIDO]

4 respostas
rachelms

Alguém pode me ajudar a passar campos de um registro lido de um arquivo para uma arvore de busca…
Tô tentando passar strings mas não sei como faço.

public static void main(String[] args) throws FileNotFoundException, IOException {
       RandomAccessFile fd;
        String         line,lins[],f1,f2,f3,f4;
        int            i,recs;
        int            ids1[];
        String         ids2[],ids3[];
        Double         ids4[];
        int            index;
        String         data;

        TreeSearch     s = new TreeSearch();
        TreeAVL        a = new TreeAVL();

        fd = new RandomAccessFile("C:\Documents and Settings\Raquel\Meus documentos\Dados\Java\Projects\Tree\prods.txt","r");
        recs = 0;
        while ((line = fd.readLine()) != null)
            recs++;
        fd.seek(0);

        ids1 = new int[recs];
        ids2 = new String[recs];
        ids3 = new String[recs];
        ids4 = new Double[recs];

        i = 0;
        while ((line = fd.readLine()) != null){
            lins = line.split("\t");
            f1 = lins[0];
            f2 = lins[1];
            f3 = lins[2];
            f4 = lins[3];

            ids1[i] = Integer.parseInt(f1);
            ids2[i] = f2;
            ids3[i] = f3;
            ids4[i] = Double.parseDouble(f4);



            a.add(ids1[i]);
            s.add(ids1[i]);
            a.add(ids4[i]);  // isso aq da erro...

        }
        Random rnd = new Random();  
        index = rnd.nextInt(ids1.length - 1); // sorteia um valor qualquer da arvore
        data = String.valueOf(index);




        a.show();
        s.show();


        System.out.println("h = " + a.height());
        
    }

}

eu realmente não sei como fazer… alguém pode me dar uma luz pra resolver esse trabalho?

4 Respostas

thundercas

rachelms,

Utilize as tags para formatação do código, facilita a leitura de quem vai te ajudar…

É só colocar o seu código dentro das tags

ViniGodoy

ids4 é um array de Doubles. Para passar para uma função que aceita texto, você deve converte-los em String:

a.add(ids4[i].toString());
rachelms

Na verdade o erro era pq no hora de ler um campo do arquivo q tem virgula ele dá erro:
mas resolvi fazendo isso:

ids4[i] = Double.parseDouble(f4.replace(',','.'));
lina

Oi,

Desconhecia essa classe: RandomAccessFile…

Achei estranho esse nome, porém verifiquei na api que o método readLine retorna as linhas em sequencia e não aleatoriamente…

Fiz um método utilizando List, Split para isso… vou passar a utilizar essa classe =)

Obs: Não esqueca de editar seu primeiro post e colocar a tag de RESOLVIDO.

Tchauzin!

Criado 11 de dezembro de 2009
Ultima resposta 11 de dez. de 2009
Respostas 4
Participantes 4