String 입력 변환 처리
실제 응용 프로그램에서는 종종 사용자로부터 입력을 받아야 하며, 이 입력은 일반적으로 String으로 읽힙니다. 입력이 정수를 나타내는지 확인하는 것과 같은 숫자 검사를 수행하려면 먼저 String을 double과 같은 숫자 유형으로 변환해야 합니다.
이 단계에서는 프로그램을 수정하여 사용자 입력을 String으로 받고, 이를 double로 변환한 다음 Math.floor()를 사용하여 원래 입력이 정수를 나타내는지 확인합니다.
WebIDE 편집기에서 IntegerCheck.java 파일을 엽니다.
기존 코드를 다음으로 바꿉니다.
import java.util.Scanner; // Import the Scanner class
public class IntegerCheck {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // Create a Scanner object
System.out.print("Enter a number: "); // Prompt the user for input
String input = scanner.nextLine(); // Read user input as a String
try {
// Convert the String input to a double
double number = Double.parseDouble(input);
// Check if the number is an integer using Math.floor()
if (number == Math.floor(number)) {
System.out.println("The input '" + input + "' represents an integer.");
} else {
System.out.println("The input '" + input + "' does not represent an integer.");
}
} catch (NumberFormatException e) {
// Handle cases where the input is not a valid number
System.out.println("Invalid input: '" + input + "' is not a valid number.");
} finally {
scanner.close(); // Close the scanner
}
}
}
코드의 새로운 부분을 살펴보겠습니다.
import java.util.Scanner;: 이 줄은 콘솔에서 입력을 읽는 데 사용되는 Scanner 클래스를 가져옵니다.
Scanner scanner = new Scanner(System.in);: 이는 일반적으로 키보드인 표준 입력 스트림 (System.in) 에서 입력을 읽는 Scanner 객체를 생성합니다.
System.out.print("Enter a number: ");: 이 줄은 사용자에게 숫자를 입력하라는 메시지를 표시합니다.
String input = scanner.nextLine();: 이는 사용자가 입력한 전체 입력 줄을 String으로 읽어 input 변수에 저장합니다.
try { ... } catch (NumberFormatException e) { ... }: 이는 try-catch 블록입니다. 잠재적인 오류를 처리하는 데 사용됩니다. 이 경우 String 입력을 double로 변환하려고 합니다. 입력이 유효한 숫자가 아니면 (예: "hello") NumberFormatException이 발생하고 catch 블록 내부의 코드가 실행됩니다.
double number = Double.parseDouble(input);: 이는 변환에 중요한 부분입니다. Double.parseDouble()은 String을 double 값으로 변환하려고 시도하는 Double 클래스의 정적 메서드입니다.
finally { scanner.close(); }: finally 블록은 예외가 발생했는지 여부에 관계없이 scanner.close() 메서드가 호출되어 Scanner에서 사용하는 시스템 리소스를 해제하도록 합니다.
IntegerCheck.java 파일을 저장합니다.
이제 ~/project 디렉토리의 터미널에서 프로그램을 컴파일하고 실행합니다.
javac IntegerCheck.java
java IntegerCheck
이제 프로그램은 입력을 입력할 때까지 대기합니다.
42와 같은 정수를 입력하고 Enter 키를 누릅니다. 출력은 다음과 같아야 합니다.
Enter a number: 42
The input '42' represents an integer.
프로그램을 다시 실행하고 3.14와 같은 정수가 아닌 숫자를 입력하고 Enter 키를 누릅니다. 출력은 다음과 같아야 합니다.
Enter a number: 3.14
The input '3.14' does not represent an integer.
프로그램을 다시 한 번 실행하고 test와 같이 숫자가 아닌 것을 입력하고 Enter 키를 누릅니다. 출력은 다음과 같아야 합니다.
Enter a number: test
Invalid input: 'test' is not a valid number.
이는 사용자 입력을 String으로 처리하고, 이를 숫자 유형으로 변환한 다음 Math.floor() 검사를 적용하는 동시에 잘못된 입력으로 인한 잠재적인 오류를 처리하는 방법을 보여줍니다.