Ajuda a usar o "StringTokenizer"

5 respostas
Bruna_Mihcelly

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);
    }

}

5 Respostas

davidbuzatto

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

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:

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);

igor_ks

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);
Bruna_Mihcelly

wellington.nogueira:
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:

+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).

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

WellingtonRamos

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:

+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).

Criado 6 de outubro de 2011
Ultima resposta 7 de out. de 2011
Respostas 5
Participantes 5