Ajuda a usar o "StringTokenizer"

Gente Boa Tarde!

preciso montar um programa que leia uma qantidade de numeros digitada pelo usuário e informe o maior e o menor! so isso é moleza, porem os numeros informados estao separados pro ; “ponto e virgula” e nao tem uma quantidade certa de numeros, pode ser qualaquer quantia!

o que eu ja fiz foi isso ai:
quem puder me da uma luz agradeço muito!

o programa roda, mas da erro quando informa os numeros!

import java.util.Scanner;
import java.util.StringTokenizer;
public class Ex_8 {
public static void main (String[] args) {
String entrada;
Scanner sc = new Scanner(System.in);
// vai ter que separar a entrada
entrada = sc.nextLine();
StringTokenizer st = new StringTokenizer(entrada,";");
int numeroAtual;
int maior =-99999 , menor =999999;
do {
numeroAtual = Integer.parseInt(st.nextToken() );
if (numeroAtual < 0 )
break;
System.out.println( " Número Atual: " + numeroAtual) ;
if (numeroAtual > maior)
maior = numeroAtual;
if (numeroAtual < menor )
menor = numeroAtual;
}while( numeroAtual >= 0 );

    System.out.println( " Maior número: " +maior+ " Menor número: " +menor);
    }

}

Bruna,

Leia esse tópico para aprender a postar código fonte: http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

Quando a sua dúvida, o recomendado é usar o método split da classe String.

[]'s

Como a documentação do StringTokenizer informa, ele não deve ser mais utilizado e foi mantido só por questões de compatibilidade. No lugar, use o split:

Scanner sc = new Scanner(System.in); String entrada = sc.nextLine(); int maior = Integer.MIN_VALUE; int menor = Integer.MAX_VALUE; for (String numeroStr : entrada.split(";")) { try { int numero = Integer.parseInt(numeroStr.trim()); menor = Math.min(numero, menor); maior = Math.max(numero, maior); } catch (NumerFormatException e) { System.out.println("Numero inválido: " + numeroStr); } } System.out.printf("O maior número informado foi %d e o menor %d%f", maior, menor);

Bom, primeiramente use a tag code para postar codigos

Segundo, acho que vc nao esta entendendo como funciona o StringTokenizer
provavelmente está dando erro pois esta procurando o proximo “;” e nao está encontrando
Nao vou te dar a solucao mas vou fazer vc pensar

Execute este codigo e entenda como o StringTokenizer funciona

        String texto = "";
		StringTokenizer st = new StringTokenizer("10;15;5;", ";");  
        while(st.hasMoreTokens()) {  
        	texto += st.nextToken() + "\n";
        }
        System.out.println(texto);

[quote=wellington.nogueira][quote=ViniGodoy]Como a documentação do StringTokenizer informa, ele não deve ser mais utilizado e foi mantido só por questões de compatibilidade. No lugar, use o split:
[/quote]
+1 :wink:

Provavelmente foi o professor que pediu para utilizar isso.
Solicite que ele leia a documentação do StringTokenizer: http://download.oracle.com/javase/6/docs/api/java/util/StringTokenizer.html
E tenha maior atenção a este ponto:

Porém, se você está aprendendo por conta, deve estar utilizando material ultrapassado. Aí recomendo buscar materiais mais atualizados (como as apostilas da Caelum).[/quote]

Bom foi o professor quem ensinou assim mesmo!
mas acho que ele ta um pouco ultrapassado mesmo!

kk
vou da uma pesquisada nesse assunto
obrigada

[quote=ViniGodoy]Como a documentação do StringTokenizer informa, ele não deve ser mais utilizado e foi mantido só por questões de compatibilidade. No lugar, use o split:
[/quote]
+1 :wink:

Provavelmente foi o professor que pediu para utilizar isso.
Solicite que ele leia a documentação do StringTokenizer: http://download.oracle.com/javase/6/docs/api/java/util/StringTokenizer.html
E tenha maior atenção a este ponto:

Porém, se você está aprendendo por conta, deve estar utilizando material ultrapassado. Aí recomendo buscar materiais mais atualizados (como as apostilas da Caelum).