Pegar valores no TXT e fazer a Ordenação de Dados

3 respostas
douglasca86

Pessoal boa noite…
Preciso de ajuda de vocês…

estou fazendo o algoritmo de ordenação de dados mas tá osso aki

eu gerei numeros aleatórios e gravei num txt e faz a leitura desse txt até aí blz…

o que não consigo é pegar esses valores dentro do txt e colocar no parametro de um método de insertionSort que está como int[] vetor…
pra vcs terem uma idéia…

Método de Leitura de txt retornando String

public String getLer() { //Aqui retorna String
	      String linha = null; 
	      String dados = null;
	      try {  
	         FileReader reader = new FileReader(nomeArquivo);
	         BufferedReader leitor = new BufferedReader(reader);  
	         StringTokenizer st = null;  
	           	  
	         while ((linha = leitor.readLine()) != null) {  
	                                            
	            st = new StringTokenizer(linha);  
	              
	  
	            while (st.hasMoreTokens()) {            	
	           
	            	dados = st.nextToken();       
	            }  
	         }  
	         leitor.close();  
	         reader.close();  
	  
	      } catch (Exception e) {  
	         e.printStackTrace();  
	      }
		return dados;
	   }

com esse método retorna assim: 12,3,6,45,89,125

Método de inserção de dados no insertionSort(int[] vetor)

public void insertionSort(int vetor[]){	// no main ele pede vetor de int[]
		int j;			
		for (int i = 1; i < vetor.length; i++) {
			int aux = vetor[i];
			j = i - 1;
			while ((j >= 0) && (vetor[j] > aux)) {
				vetor[j + 1] = vetor[j];
				j = j - 1;
			}
			vetor[j + 1] = aux;
		}
	}

O que tem que fazer?, tentei fazer uma conversão de dados de vetor de String para vetor de inteiros mas não funciona,

Por favor, se puderem me ajudar, eu agradeço…

3 Respostas

ViniGodoy

É de propósito que você está programando em Java 4?

public int[] getLer() {
    //Passo 1, leitura do arquivo
    List<Integer> numeros = new ArrayList<>();
    for (String linha : Files.readAllLines(Paths.get(nomeArquivo), StandardCharsets.UTF_8)) {
        String[] valores = linha.split(Pattern.quote(&quot;,&quot;));
        for (String valor : valores) {
            numeros.add(Integer.parseInt(numero));
        }
    }

    //Passo 2: Converter para um int[]
   int[] dados = new int[numeros.size()];
   for (int i = 0; i &lt; numeros.size(); i++) {
      dados[i] = numeros.get(i);
   }
   return dados;
}
Phelps

Eu ri muito aqui…
Ele deve estar estudando por um material mais antigo, eu peguei um livro de java um dia desses que ensinava por uma versão mais velha, o código parecia C. Programo a uns 2 anos em java e muita coisa já foi simplificada, é impressionante! Viva o java e sua evolução.

douglasca86
ViniGodoy:
É de propósito que você está programando em Java 4?
public int[] getLer() {
    //Passo 1, leitura do arquivo
    List&lt;Integer&gt; numeros = new ArrayList&lt;&gt;();
    for (String linha : Files.readAllLines(Paths.get(nomeArquivo), StandardCharsets.UTF_8)) {
        String[] valores = linha.split(Pattern.quote(&quot;,&quot;));
        for (String valor : valores) {
            numeros.add(Integer.parseInt(numero));
        }
    }

    //Passo 2: Converter para um int[]
   int[] dados = new int[numeros.size()];
   for (int i = 0; i &lt; numeros.size(); i++) {
      dados[i] = numeros.get(i);
   }
   return dados;
}

Ow Vini.....funcionou certinho aqui usando esse código....

hehe na verdade eu estou usando o Java 7 para programar, mas sinceramente, não conhecia estes novos recursos de leitura de arquivo txt.....

valew muito obrigado... Abraço!!!!!

Criado 1 de junho de 2013
Ultima resposta 5 de jun. de 2013
Respostas 3
Participantes 3