Inserir dados de arquivo em array bidimensional

10 respostas
L

Olá !!
Estou precisando de ajuda, pois preciso ler um arquivo txt
de números reais com 2 colunas e inserir estes números em um
array bidimensional.
Eu consegui fazer isto com array simples e arq de 1 coluna.
Help !!!

Até +
Lu

10 Respostas

M

bem, vc tem q saber oq separa essas 2 colunas de números no arquivo… ai vai lendo linha a linha, pegando os dois numeros por linha separando por esse separador… td em um forzinho pra popular o array…

L

O que separa as colunas de números float é espaço em branco.
acho que é aí o erro, pois ele lê como string.
Por exemplo: 2.5 3.1
É lido “2.5 3.1” como uma string.

Mas, como faço para ler pulando o espaço e continuar o próximo número ?

Obrigada
T+
Lu

M

da um split() na linha q tu tiver lendo pra separar por " " :joia:

L

Ok, vou tentar…

Até +

Lu

L

Olá, aqui está meu código, help!!!

{ SimplePoint sp;
    float b[][]= new float[3][2];                
    String title;
    coll_ = new Collection("Test Points", num);   
    String str;        
    TextFile arquivo = new TextFile();
        
    javax.swing.JFileChooser a = new javax.swing.JFileChooser();
    if(a.showOpenDialog(a) == javax.swing.JFileChooser.APPROVE_OPTION){
    File file = a.getSelectedFile(); 
    String textoEntrada = "";    
    arquivo.fFile=file;
    }               
    
    arquivo.reset();
    str=arquivo.readln();           
      
    for(int i=0;i<b.length;i++){ 
     for(int j=0;j<b[i].length;j++){
       while (str!=null){
        b[i][j]=Float.parseFloat(str);
        str=arquivo.readln();        
        break;     
       }       
       title = "ponto"+i;          
       sp = new SimplePoint((b[i][0]),(b[i][1]),(title)); 
       coll_.addElement((Object)sp);
      }
    }   
 }

Erro:

Exception in thread "main" java.lang.NumberFormatException: For input string: "8.0 4.0"
    at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)

Grata, e aguardo ajuda !!!
Lu

[color=“red”]* Editado - use a tag Code em seus códigos[/color]

M

note q vc esta tentando passar uma linha toda como um número… “8.0 4.0”, como eu disse, de um split nessa linha

P

certa vez fui numa entrevista e um dos exercicios (eram varios argh) era esse

uoh

L

Ok, mas como faço split ?
Tenho que transformar minha String em um array de Strings ?

T+
Lu

M

sim, da pra usar split pra separar esses dois valores numéricos… é oq tu quer né? … da uma olhada na API de String, ai tem split()

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html

L

Ok, Valeu !!!

Obrigada!!!

Criado 24 de maio de 2005
Ultima resposta 25 de mai. de 2005
Respostas 10
Participantes 3