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…
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).
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??