Exibir mensagem de erro para o usuário que digitou uma letra e não um número!

4 respostas
Sara_Teles

Olá, pessoal!

Como faço para emitir ao usuário uma mensagem de erro dizendo que ele digitou uma letra e não um número e pede pra ele entrar com um número??? (Abaixo tem mais ou menos como tenho feito até então…)

[color=blue]/**Programa que lê 2 números do usuário e mostra a soma *deles
*se o usuário digita uma letra ao invés de um número

  • o programa emite uma mensagem de erro e pede para inserir um
    número/[/color]
import javax.swing.*;

public class Programa11

{
public static void main(String[] args)

{

int a=0,b=0;

try{//entrada do número1 pela Caixa de Dialogo

String numero1 = JOptionPane.showInputDialog(Entre com um número);

a=Integer.parseInt(numero1);

//entrada do número2 pela Caixa de Dialogo

String numero2 = JOptionPane.showInputDialog(Entre com um número);

b=Integer.parseInt(numero2);
}     catch(NumberFormatException e){

JOptionPane.showMessageDialog(null, ERRO! Digite um número!);

}

}

}//fim da classe Programa11

4 Respostas

D

Olá Sara

olha só , o que vc quer fazer não é uma coisa muito apropriada , vc poderia
usar vários outros recursos pra vc calcular dois números , mais c é isso que quer eu fiz um exemplinho uma gambiarra que para o seu caso funciona perfeitamente

int a=0,b=0;
        
        //ler o primeiro numero
        while(true){
            try{
                String numero1 = JOptionPane.showInputDialog("Entre com um número");
                a=Integer.parseInt(numero1); break;
            }catch(NumberFormatException ex){
                JOptionPane.showMessageDialog(null, "ERRO! Digite um número!");
                continue;
            }
        }
        
        //ler o segundo numero
        while(true){
            try{
                //entrada do número2 pela Caixa de Dialogo
                String numero2 = JOptionPane.showInputDialog("Entre com um número");
                b=Integer.parseInt(numero2); break;
                
            }catch(NumberFormatException ex){
                JOptionPane.showMessageDialog(null, "ERRO! Digite um número!");
                continue;
            }
        }
        JOptionPane.showMessageDialog(null,"A soma dos números e:::" + (a+b));
    }

bom espero ter te ajudado

S

Olá Sara,

Por que aos invés de utilizar Integer.parseInt(numero1) você não usa a classe Character?

while (!ehdigito){
                    String numero1 = JOptionPane.showInputDialog("Entre com um número");
                     ehdigito = Character.isDigit(numero1 .charAt(i));
                     if(!numero1){

                           JOptionPane.showMessageDialog(null, "ERRO! Digite um número!");
                     }

             }
Sara_Teles

Ok, obrigada!

Era uma questão de tratamento de exceção, resolvida
com uma boolean, try e catch!

Valeu, obrigada mesmo!

Eduardo_Bregaida

Usa expressões regulares, o código fica mais limpo…
tem um tutorial aqui no GUJ q um dos criadores da Caelum, o Paulo Silveira fez…
http://www.guj.com.br/java.tutorial.artigo.1.1.guj

Criado 20 de outubro de 2006
Ultima resposta 6 de nov. de 2006
Respostas 4
Participantes 4