StreamTokenizer - TT_WORD

2 respostas
masterpablo

Olá Amigos,
estou com um problema que nao sei como resolver.

Preciso fazer um trabalho em java em que tenho que ler um arquivo e ir obedecendo os comandos do mesmo. No arquivo tem comandos para criar variáveis e tudo mais. Tem também comandos para somar, subtrair e por aí vai.

Uma das minhas dúvidas é:

Como usar um método que sabe diferenciar palavras de numeros?

Eu preciso de um metodo que leia alguma coisa e me diga se é palavra ou numero, pois se for palavra eu empilho em uma pilha e se for numero eu farei em outra. Já estou usando o metodo TT_WORD e TT_NUMBER mas nao estou conseguindo faze-lo funcionar. No meu codigo, eu pedi para que se for palavra ele me informe e que faça o mesmo para numero, mas o problema é que ele entende tudo como palavra.

Será que voces podem me ajudar?

Posto meu código logo abaixo:

File file = new File("teste1.txt");
		
		try {
			//inicializa o StreamTokenizer
			FileReader reader = new FileReader(file);
			BufferedReader bReader = new BufferedReader(reader);
			StreamTokenizer st = new StreamTokenizer(bReader);	

			//configura o StreamTokenizer
			st.resetSyntax();
			st.whitespaceChars(0,' ');
			st.wordChars(' '+1,255);
			
			
			//manda o StreamTokenizer ler a primeira palavra do arquivo
			// manda o StreamTokenizer ler a primeira palavra do arquivo
			int aux=st.nextToken();
						
			//pega a linha atual do arquivo
			st.lineno();
			
			while(st.ttype!=StreamTokenizer.TT_EOF)
			{
				switch (st.nextToken())
				{
					case StreamTokenizer.TT_WORD:
						System.out.println("E palavra");
						break;
					
					case StreamTokenizer.TT_NUMBER:
						System.out.println("E numero");
						break;
				}		
			}
.
.
.
.
.

Já tentei colocar numero para ver o que acontece mas ele classifica tudo como palavra mesmo.

Aguardo retorno!

Muito obrigado

2 Respostas

L

FAVOR…NÃO REPETIR TÓPICOS NO FÓRUM…
Fica ruim para quem pesquisa algo e abre 2,3,4,5,6,7,8,9 tópicos iguais…

Cerjr

Você pode usar o Pattern e o Matcher para validar se é numero ou letras usando regex.

Criado 28 de agosto de 2008
Ultima resposta 28 de ago. de 2008
Respostas 2
Participantes 3