HOWTO · Java

Controlla se l'input è intero in Java

Questo articolo introduce come determinare se un input è intero in Java.

Il problema afferma che dobbiamo controllare se l’input preso in linguaggio Java è un numero intero.

Verificare se l’input è intero utilizzando il metodo hasNextInt in Java

Il System è una classe che ha metodi e campi statici. Non possiamo mai istanziarne l’oggetto. L’oggetto in è il flusso di input standard. Questo flusso è già aperto e pronto per fornire dati di input.

hasNextMethod è presente nella classe Scanner e restituisce true se il token successivo in questo input di scanner può essere valutato come un valore int. Il metodo genera IllegalStateException se l’oggetto scanner è chiuso.

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");
    }
  }
}

Nella prima riga, l’input viene preso dall’utente utilizzando l’input della console. Poiché il testo immesso è un numero, il numero è un numero intero che viene stampato.

Enter the number: 1
The number is an integer

Poiché il testo immesso non è un numero, viene stampata l’istruzione della condizione else.

Enter the number: Hi
The number is not an integer

Controlla se il numero è intero usando il blocco try...catch

Nel blocco di codice seguente, usiamo la classe Scanner per prendere l’input dell’utente dalla console. La classe Scanner ha il metodo next. Lancia NoSuchElementException se non sono più disponibili token e IllegalStateException se questo scanner è chiuso.

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 ");
    }
  }

Il codice sopra mostrerà l’istruzione nel blocco try se il numero è un numero intero. Ed eseguirà l’istruzione presente nel blocco catch se il metodo lancia una Exception da esso e lancia NumberFormatException se non è in grado di convertire una stringa in uno dei tipi numerici.

L’output del codice precedente è simile a quello del primo codice di esempio riportato sopra.