소개
Java 애플리케이션을 개발할 때, 사용자 입력을 검증하는 것은 매우 중요한 작업입니다. 이 랩에서는 주어진 입력이 유효한 정수인지 확인하는 세 가지 일반적인 방법을 보여줍니다.
Integer.parseInt()메서드 사용Scanner.hasNextInt()메서드 사용Character.isDigit()메서드 사용
각 방법을 단계별로 구현하고, 그 차이점과 사용 사례를 이해할 것입니다.
Java 애플리케이션을 개발할 때, 사용자 입력을 검증하는 것은 매우 중요한 작업입니다. 이 랩에서는 주어진 입력이 유효한 정수인지 확인하는 세 가지 일반적인 방법을 보여줍니다.
Integer.parseInt() 메서드 사용Scanner.hasNextInt() 메서드 사용Character.isDigit() 메서드 사용각 방법을 단계별로 구현하고, 그 차이점과 사용 사례를 이해할 것입니다.
정수 검증 메서드를 구현하기 위해 새로운 Java 파일을 만들어 보겠습니다.
/home/labex/project 디렉토리에 있는지 확인합니다:pwd
CheckInputInteger.java라는 새 Java 파일을 생성합니다:touch CheckInputInteger.java
import java.util.Scanner;
public class CheckInputInteger {
public static void main(String[] args) {
// 여기에 메서드 호출을 추가할 것입니다.
}
}

Integer.parseInt() 메서드는 문자열을 정수로 변환하려고 시도합니다. 변환에 실패하면 NumberFormatException을 발생시킵니다. 이 동작을 사용하여 정수를 검증할 수 있습니다.
CheckInputInteger.java 파일에 추가합니다:// CheckInputInteger 클래스 내부에 이 메서드를 추가합니다.
public static void checkUsingParseInt(String input) {
try {
// 입력 문자열을 정수로 파싱을 시도합니다.
Integer.parseInt(input);
System.out.println(input + " is a valid integer");
} catch (NumberFormatException e) {
// 파싱에 실패하면 입력은 유효한 정수가 아닙니다.
System.out.println(input + " is not a valid integer");
}
}
main 메서드를 업데이트합니다:// 이 구현을 테스트하기 위해 main 메서드를 수정합니다.
public static void main(String[] args) {
// 테스트 케이스
checkUsingParseInt("123"); // 유효한 정수
checkUsingParseInt("12.34"); // 정수가 아님
checkUsingParseInt("abc"); // 정수가 아님
}
import java.util.Scanner;
public class CheckInputInteger {
// 클래스 내부에 메서드를 정의합니다.
public static void checkUsingParseInt(String input) {
try {
// 입력 문자열을 정수로 파싱을 시도합니다.
Integer.parseInt(input);
System.out.println(input + " is a valid integer");
} catch (NumberFormatException e) {
// 파싱에 실패하면 입력은 유효한 정수가 아닙니다.
System.out.println(input + " is not a valid integer");
}
}
public static void main(String[] args) {
// 테스트 케이스
checkUsingParseInt("123"); // 유효한 정수
checkUsingParseInt("12.34"); // 정수가 아님
checkUsingParseInt("abc"); // 정수가 아님
}
}
javac CheckInputInteger.java
java CheckInputInteger
다음 출력을 볼 수 있습니다:
123 is a valid integer
12.34 is not a valid integer
abc is not a valid integer

Scanner 클래스는 입력의 다음 토큰을 정수로 해석할 수 있는지 확인하는 hasNextInt() 메서드를 제공합니다. 이 메서드는 콘솔에서 사용자 입력을 읽을 때 특히 유용합니다.
CheckInputInteger 클래스 내의 CheckInputInteger.java 파일에 다음 메서드를 추가합니다:public static void checkUsingScanner(String input) {
Scanner scanner = new Scanner(input);
if (scanner.hasNextInt()) {
System.out.println(input + " is a valid integer");
} else {
System.out.println(input + " is not a valid integer");
}
scanner.close();
}
main 메서드를 업데이트합니다:public static void main(String[] args) {
// 이전 테스트 케이스
checkUsingParseInt("123");
checkUsingParseInt("12.34");
checkUsingParseInt("abc");
// 새로운 테스트 케이스
checkUsingScanner("456"); // 유효한 정수
checkUsingScanner("-789"); // 유효한 정수
checkUsingScanner("12.34"); // 정수가 아님
}
javac CheckInputInteger.java
java CheckInputInteger
다음 출력을 볼 수 있습니다:
456 is a valid integer
-789 is a valid integer
12.34 is not a valid integer
이는 Scanner.hasNextInt() 메서드가 유효하고 유효하지 않은 정수를 올바르게 식별함을 보여줍니다.

Character.isDigit() 메서드는 문자가 숫자 자릿수인지 확인합니다. 입력 문자열의 각 문자를 검사하여 정수를 검증하는 데 사용할 수 있습니다.
CheckInputInteger.java 파일에 다음 메서드를 추가합니다:public static void checkUsingIsDigit(String input) {
boolean isValid = true;
// 첫 번째 문자를 확인하여 음수를 처리합니다.
int startIndex = (input.charAt(0) == '-') ? 1 : 0;
// 각 문자를 확인합니다.
for (int i = startIndex; i < input.length(); i++) {
if (!Character.isDigit(input.charAt(i))) {
isValid = false;
break;
}
}
if (isValid) {
System.out.println(input + " is a valid integer");
} else {
System.out.println(input + " is not a valid integer");
}
}
main 메서드를 업데이트합니다:public static void main(String[] args) {
// 이전 테스트 케이스
checkUsingParseInt("123");
checkUsingParseInt("12.34");
checkUsingParseInt("abc");
checkUsingScanner("456");
checkUsingScanner("-789");
checkUsingScanner("12.34");
// 새로운 테스트 케이스
checkUsingIsDigit("789"); // 유효한 정수
checkUsingIsDigit("-123"); // 유효한 정수
checkUsingIsDigit("12.34"); // 정수가 아님
}
javac CheckInputInteger.java
java CheckInputInteger
다음 출력을 볼 수 있습니다:
789 is a valid integer
-123 is a valid integer
12.34 is not a valid integer

이 랩에서는 Java 에서 정수 입력을 검증하는 세 가지 다른 방법을 살펴보았습니다.
Integer.parseInt() 메서드Scanner.hasNextInt() 메서드Character.isDigit() 메서드각 방법에는 장점과 사용 사례가 있습니다. parseInt() 메서드는 간단한 문자열 - 정수 변환에 적합하고, Scanner.hasNextInt()는 사용자 입력을 읽는 데 매우 뛰어나며, Character.isDigit()는 검증 프로세스에 대한 가장 많은 제어를 제공합니다.
이러한 검증 기술은 사용자 입력을 안전하고 효과적으로 처리할 수 있는 강력한 Java 애플리케이션을 개발하는 데 필수적입니다.