Java에서 입력이 정수인지 확인
문제는 Java 언어로 입력 한 내용이 정수인지 확인해야한다는 것입니다.
Java에서hasNextInt
메소드를 사용하여 입력이 정수인지 확인
System
은 정적 메소드와 필드가있는 클래스입니다. 우리는 그것의 객체를 결코 인스턴스화 할 수 없습니다. in
개체는 표준 입력 스트림입니다. 이 스트림은 이미 열려 있고 입력 데이터를 제공 할 준비가되었습니다.
hasNextMethod
는Scanner
클래스에 있으며이 스캐너 입력의 다음 토큰이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
을 던집니다.
위 코드의 출력은 위에 제공된 첫 번째 예제 코드의 출력과 유사합니다.
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