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