HOWTO · Java

Java에서 입력이 정수인지 확인

이 기사에서는 Java에서 입력이 정수인지 확인하는 방법을 소개합니다.

문제는 Java 언어로 입력 한 내용이 정수인지 확인해야한다는 것입니다.

Java에서hasNextInt메소드를 사용하여 입력이 정수인지 확인

System은 정적 메소드와 필드가있는 클래스입니다. 우리는 그것의 객체를 결코 인스턴스화 할 수 없습니다. in개체는 표준 입력 스트림입니다. 이 스트림은 이미 열려 있고 입력 데이터를 제공 할 준비가되었습니다.

hasNextMethodScanner클래스에 있으며이 스캐너 입력의 다음 토큰이int값으로 평가 될 수있는 경우 true를 리턴합니다. 스캐너 객체가 닫히면 메소드는IllegalStateException을 발생시킵니다.

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

첫 번째 줄에서 입력은 콘솔 입력을 사용하여 사용자로부터 가져옵니다. 입력 된 텍스트는 숫자이므로 인쇄되는 정수입니다.

Enter the number: 1
The number is an integer

입력 된 텍스트가 숫자가 아니므로 else 조건문이 출력됩니다.

Enter the number: Hi
The number is not an integer

try...catch블록을 사용하여 숫자가 정수인지 확인

아래 코드 블록에서는 Scanner 클래스를 사용하여 콘솔에서 사용자 입력을받습니다. Scanner클래스에는next메소드가 있습니다. 사용할 수있는 토큰이 더 이상 없으면NoSuchElementException이 발생하고이 스캐너가 닫혀 있으면IllegalStateException이 발생합니다.

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

위의 코드는 숫자가 정수인 경우 try 블록의 문을 표시합니다. 그리고 메소드가Exception을 던지면 catch 블록에있는 명령문을 실행하고 문자열을 숫자 유형 중 하나로 변환 할 수없는 경우NumberFormatException을 던집니다.

위 코드의 출력은 위에 제공된 첫 번째 예제 코드의 출력과 유사합니다.