Controlla se l'input è intero in Java

Rashmi Patidar 12 ottobre 2023
  1. Verificare se l’input è intero utilizzando il metodo hasNextInt in Java
  2. Controlla se il numero è intero usando il blocco try...catch
Controlla se l'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.

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

Articolo correlato - Java Integer