Calculadora - Como aceitar apenas números?

Boa tarde, Pessoal!

Estou começando em Java e estou fazendo um código bem simples de uma calculadora, mas não sei como fazer com que caso o usuário digite uma letra ou caractere especial, imprima uma mensagem de erro dizendo “Valor Invalido”.

Aqui esta meu código, alguém pode me ajudar?

import java.util.Scanner;

public class Principal {

public static void main(String[] args) {
	
	int n1;
	int n2;
	
	Scanner entrada = new Scanner(System.in);
	
	System.out.println("Insira um numero");
	n1 = entrada.nextInt();
	
	System.out.println("Insira um numero");
	n2 = entrada.nextInt();
	
	
	System.out.println("------------------------------------");
	System.out.println("Calculos abaixo:");
	System.out.println(" ");
	System.out.println("Soma: "+(n1+n2));
	System.out.println("Subtração: "+(n1-n2));
	System.out.println("Divisão: "+(n1/n2));
	System.out.println("Multiplicação: "+(n1*n2));
	
	
	

}

}

Este é um jeito de fazer:

import java.util.Scanner;

public class Principal {
  private static Scanner scan = new Scanner(System.in);

  private static int readInt() {
    while (true) {
      try {
        System.out.print("Insira um numero: ");
        return Integer.parseInt(scan.nextLine());
      } catch (NumberFormatException e) {
        System.out.print("Tem que ser número! ");
      }
    }
  }

  public static void main(String... args) {
    int n1 = readInt();
    int n2 = readInt();

    System.out.println("------------------------------------");
    System.out.println("Calculos abaixo:");
    System.out.println(" ");
    System.out.println("Soma: " + (n1 + n2));
    System.out.println("Subtração: " + (n1 - n2));
    System.out.println("Divisão: " + (n1 / n2));
    System.out.println("Multiplicação: " + (n1 * n2));
  }
}
1 curtida

Cara, muito obrigado. Eu tinha tentado com Try e Catch, mas devo ter feito algo errado e não estava indo. Obrigado de coração!

1 curtida