HOWTO · Java
Verifique se a entrada é inteira em Java
Este artigo apresenta como determinar se uma 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.