Verifique se a entrada é inteira em Java

Rashmi Patidar 12 outubro 2023
  1. Verifique se a entrada é inteira usando o método hasNextInt em Java
  2. Verifique se o número é inteiro usando o bloco try...catch
Verifique se a entrada é inteira em Java

O problema afirma que precisamos verificar se a entrada obtida na linguagem Java é um número inteiro.

Verifique se a entrada é inteira usando o método hasNextInt em Java

O System é uma classe que possui métodos e campos estáticos. Nunca podemos instanciar o objeto disso. O objeto in é o fluxo de entrada padrão. Este fluxo já está aberto e pronto para fornecer dados de entrada.

O hasNextMethod está presente na classe Scanner e retorna verdadeiro se o próximo token nesta entrada do scanner puder ser avaliado como um valor int. O método lança IllegalStateException se o objeto do scanner for fechado.

package checkInputIsInt;

import java.util.Scanner;

public class CheckIntegerInput {
  public static void main(String[] args) {
    System.out.print("Enter the number: ");
    Scanner scanner = new Scanner(System.in);
    if (scanner.hasNextInt()) {
      System.out.println("The number is an integer");
    } else {
      System.out.println("The number is not an integer");
    }
  }
}

Na primeira linha, a entrada é obtida do usuário usando a entrada do console. Como o texto inserido é um número, o número é um inteiro que é impresso.

Enter the number: 1
The number is an integer

Como o texto inserido não é um número, a instrução da condição else é impressa.

Enter the number: Hi
The number is not an integer

Verifique se o número é inteiro usando o bloco try...catch

No bloco de código a seguir, usamos a classe Scanner para obter a entrada do usuário do console. A classe Scanner possui o método next. Ele lança NoSuchElementException se não houver mais tokens disponíveis e IllegalStateException se este scanner estiver fechado.

public class CheckIntegerInput {
  public static void main(String[] args) {
    System.out.print("Enter the number : ");
    Scanner scanner = new Scanner(System.in);
    try {
      Integer.parseInt(scanner.next());
      System.out.println("The number is an integer");
    } catch (NumberFormatException ex) {
      System.out.println("The number is not an integer ");
    }
  }

O código acima mostrará a instrução no bloco try se o número for um inteiro. E executará a instrução presente no bloco catch se o método lançar uma Exception dele e lançar NumberFormatException se não for capaz de converter uma string para um dos tipos numéricos.

A saída do código acima é semelhante à do primeiro exemplo de código fornecido acima.

Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Artigo relacionado - Java Integer