Pegar o valor i+1 de um arquivo

e ae galera… blz…

bem, com a ajuda de tdos cheguei a qse finalizar + um exercicio… agora, o q falta é o seguinte… tenho um arquivo e consegui separa-lo em tokens… só q, sempre o 1o elemento da minha lista, sera um nome, e nao kero ele… kero apenas os numeros q vem em seguida… ou seja, um arquivo TXT seguinte:

Fabio dos Santos; 10;7;8
Rogerio Ceni; 3;9;10

como q faco p/ pegar, sempre, apenas os numeros de kda linha(nome)???

eis meu codigo:


import java.util.StringTokenizer;
import java.io.*;
import java.lang.*;

public class TesteTokenizer {
 
  public static void main (String args[]) {

    int count=0;
	int tmp=1;
	String vetor = "";
	try {

	  	BufferedReader in = new BufferedReader(new FileReader("notas.txt"));
	  	String str;

		  while ( ( str = in.readLine() ) != null )
		  {
		    
			StringTokenizer token = new StringTokenizer(str);
		         while (token.hasMoreTokens()) 
			    System.out.println(token.nextToken(";"));
				// aqui eu deveria selecionar o q deveria guardar, ouseja, os numeros...
				 }
		
		
				count++;
			  in.close();

		} catch (IOException e) { }
	
	}
	}

e entao galera, lembrando q a entrada é um TXT, sempre com esse padrao de entrada, com varios nomes e notas…

o q fazer??

aguardo… valews galera…
:?:

Blz kara…

Bom… o padrão do seu arquivo TXT está bem definido e da seguinte formar:

…onde os tokens estão separados por ; (ponto e vírgula). Entretanto, o primeiro token vc dispresa… assim… quando vc passar esta linha para o construtor da StringTokenizer e for procurar pelos próximos tokens é só despresar o primeiro… e os próximos serão os valores que vc quer… blz?

Caro juliano, o propósito de vc usar uma separação de dados por ‘;’ é que ao construir um objeto StringTokenizer, vc especifica pra ele que seu separador é o ‘;’.
Pelo seu código dá pra ver que você nao fez isso.
Crie um StringTokenizer assim

StringTokenizer st = new StringTokenizer(in.readLine(), ';');

ps.: nao tenho certeza da sintaxe, mas procure na referencia da Sun pra ter certeza.
aí , quando voce for varrer o arquivo. a cada linha varrida, você ignora o primeiro token fazendo com que uma variavel temporária receba o st.nextToken();
Os próximos valores serão as notas. Caso seja um numero fixo de notas tudo bem. Mas caso seja variavel aí vc vai precisar de outros artificios tais como a numeração da quantia de notas como mais um token: antes ou depois do nome do aluno.

ps.:Talvez seja possível vc varrer as notas até nao existir mais tokens utilizando o procedimento do seu código (hasmoretokens).

valeu

galera, eu ja consegui separar por token… ele pega tdo o nome como 1 tokem e a cada nota, ele é um tokem individual…

Só q meu problema esta em como implementar usando o java e a classe do tokenizer… Realmente nao sei como pular o 1o tokem e começar pegar apenas do segundo em diante… como q faço isso galera… e na hra de eu pegar, eu ja converteria ele p/ um float… se eu for converter tdos, ele vai dar erro, pois o 1o tokem sera uma string…

como q faco galera… URGENTE msmo… deve ser simples, eu q to meio por fora… deve ser algo de comparar o tokem com alguma coisa p/ ver se ele é um numero… mas e como fazer??

aguardo msmo galera… valews…

StringTokenizer token = new StringTokenizer(str, ";");
token.nextToken(); //pulando primeiro token
while(token.hasMoreTokens()) {
  String parser = token.netxToken(); //pegandos os outros.
  try {
    float f = Float.parseFloat(parser);
  }
  catch(NumberFormatException e) {
    System.out.println("Not a number");
  }
}

Tentae :slight_smile:

valews galera… consegui tdo aqui… show de bola