Matriz Bidimensional

1 resposta
N
Por favor, alguém pode me ajudar

Eu inicializei uma matriz

[color=red]private Object[][]dados={

{01,1031,08112004,6.18},

{02,1032,09112004,6.18}

};[/color]

Isto  está feito dentro do programa.  Agora eu quero fz outro prog., ler um arq. txt cujo o registro é idêntico a este q foi definido acima, e inicializar esta mesma matriz linha e coluna até acabar o reg.

exemplo:

arqtxt

011031081120046.18\n

021032091120046.18\n

[size=“18”]Se houver alguma idéia melhor eu agradeço, ms minha idéia é conseguir fz desta maneira, mesmo pq gostaria muito de aprender desta forma!

Atenciosamente,[/size]

1 Resposta

F

vc vai ter q separar cada string… assim n da pra saber qndo acaba uma e comeca outra pois seus tamanhos nao sao regulares…

depois q vc separar as strings (pode ser com qquer caractere q NAO faca em hipotese alguma parte de uma das strings), vc pode usar a classe StringTokenizer:

supondo q vc separou com espacos:

public Object[][] getMatriz(String str){
 ArrayList array = new ArrayList(), aux;
 StringTokenizer st1 = new StringTokenizer(str, "\n"), st2;
 while (st1.hasMoreTokens()){
  st2 = new StringTokenizer(st1.nextToken(), " ");
  aux = new ArrayList();
  while (st2.hasMoreTokens()) aux.add(st2.nextToken());
  array.add(aux);
 }
 // agora passa dos array list para uma matriz
 // assume-se que todas as linhas contem o mesmo numero de objetos
 Object m[][] = new Obect[array.size()][aux.size()];
 for (int i = 0; i < m.length; i++){
  aux = (ArrayList)array.get(i);
  for (int j = 0; j < m[0].length; j++){
    m[i][j] = aux.get(j);
   }
 }
 return m;
}
Criado 23 de novembro de 2004
Ultima resposta 23 de nov. de 2004
Respostas 1
Participantes 2