소개
이 랩에서는 Java 의 parseUnsignedInt() 메서드를 사용하여 문자열 값을 부호 없는 십진 정수로 파싱하는 방법을 배웁니다. 이 메서드의 구문, 매개변수 및 반환 유형을 살펴보고 몇 가지 예제를 통해 사용하는 방법을 배웁니다.
새로운 Java 파일 생성
먼저, ~/project 디렉토리에 새로운 Java 파일을 생성해야 합니다. 터미널을 열고 다음을 입력하여 수행할 수 있습니다.
touch ~/project/UnsignedIntegerParser.java
이렇게 하면 빈 Nano 편집기 창이 열립니다.
Integer 클래스 import
parseUnsignedInt() 메서드를 포함하고 있는 java.lang 패키지의 Integer 클래스를 임포트해야 합니다. 파일 내부에 다음 코드를 추가하여 수행할 수 있습니다.
import java.lang.Integer;
문자열 값에서 부호 없는 정수 파싱
이제 parseUnsignedInt() 메서드를 사용하는 방법을 알아보겠습니다. 이 메서드를 문자열 값에 호출하면 해당 부호 없는 10 진수 Integer 객체를 반환합니다. 다음은 예시입니다.
String s = "123";
int n = Integer.parseUnsignedInt(s); //Converts the passed string as unsigned integer
System.out.println(n);
이 코드의 출력은 123이 됩니다.
잘못된 입력 처리
parseUnsignedInt() 메서드에 잘못된 입력을 제공하면 NumberFormatException이 발생합니다. try-catch 블록을 사용하여 이 예외를 처리할 수 있습니다. 다음은 예시입니다.
try {
String s = "-123";
int n = Integer.parseUnsignedInt(s); //Converts the passed string as unsigned integer
System.out.println(n);
} catch(NumberFormatException ex) {
System.out.println("Invalid input.");
}
이 코드에서는 음수 정수를 파싱하려고 시도하는데, 이는 유효하지 않습니다. parseUnsignedInt() 메서드는 NumberFormatException을 발생시키고, 이는 catch 블록에서 잡힙니다. 이 코드의 출력은 Invalid input.이 됩니다.
콘솔에서 입력 읽기
콘솔에서 입력을 읽어 부호 없는 정수로 파싱할 수도 있습니다. 다음은 예시입니다.
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a positive integer: ");
String s = scanner.nextLine();
try {
int n = Integer.parseUnsignedInt(s); //Converts the passed string as unsigned integer
System.out.println(n);
} catch(NumberFormatException ex) {
System.out.println("Invalid input.");
}
이 코드에서는 Scanner 클래스를 사용하여 콘솔에서 입력을 읽습니다. 그런 다음 parseUnsignedInt() 메서드를 사용하여 입력 문자열을 부호 없는 정수로 파싱합니다. 마지막으로, 입력을 파싱하는 동안 발생할 수 있는 예외를 잡습니다.
터미널에서 이 코드를 실행하려면 먼저 다음 명령을 사용하여 컴파일해야 합니다.
javac UnsignedIntegerParser.java
그런 다음 다음 명령을 사용하여 실행할 수 있습니다.
java UnsignedIntegerParser
문자열 목록에서 부호 없는 정수 파싱
문자열 목록에서 부호 없는 정수를 파싱할 수도 있습니다. 다음은 예시입니다.
List<String> stringList = Arrays.asList("123", "456", "789");
for (String s : stringList) {
try {
int n = Integer.parseUnsignedInt(s); //Converts the passed string as unsigned integer
System.out.println(n);
} catch(NumberFormatException ex) {
System.out.println("Invalid input: " + s);
}
}
이 코드에서는 문자열 목록을 반복하면서 parseUnsignedInt() 메서드를 사용하여 각 문자열을 부호 없는 정수로 파싱합니다. 문자열이 유효한 부호 없는 정수가 아닌 경우, 예외를 잡고 오류 메시지를 출력합니다.
헬퍼 함수 사용
부호 없는 정수를 파싱할 때마다 동일한 try-catch 블록을 반복하지 않도록, 문자열을 입력으로 받아 부호 없는 정수를 반환하는 헬퍼 함수를 만들 수 있습니다. 다음은 예시입니다.
public static int parseUnsignedInt(String s) {
try {
return Integer.parseUnsignedInt(s); //Converts the passed string as unsigned integer
} catch(NumberFormatException ex) {
return -1; //Return -1 for invalid input
}
}
이 코드에서는 문자열을 입력으로 받아 부호 없는 정수를 반환하는 parseUnsignedInt() 함수를 정의하고 있습니다. 입력이 유효한 부호 없는 정수가 아닌 경우, 함수는 -1 을 반환합니다. 그런 다음 이 함수를 사용하여 예외에 대한 걱정 없이 부호 없는 정수를 파싱할 수 있습니다. 다음은 이 함수를 사용하는 예시입니다.
String s = "123";
int n = parseUnsignedInt(s);
System.out.println(n); //Output: 123
s = "-123";
n = parseUnsignedInt(s);
System.out.println(n); //Output: -1
더 큰 부호 없는 정수 처리
더 큰 부호 없는 정수를 파싱해야 하는 경우, Integer 클래스 대신 UnsignedInteger 클래스의 parseUnsignedLong() 메서드를 사용할 수 있습니다. 이 메서드는 int 대신 long을 반환합니다. 다음은 예시입니다.
String s = "4294967295"; //Maximum value of an unsigned 32-bit integer
long n = Long.parseUnsignedLong(s);
System.out.println(n); //Output: 4294967295
Radix 사용법
10 진수가 아닌 다른 기수로 숫자를 나타내는 문자열을 파싱하려는 경우, 추가적인 radix 매개변수를 사용하는 parseInt() 메서드를 사용할 수 있습니다. 다음은 예시입니다.
String s = "1101"; //Binary representation of 13
int n = Integer.parseUnsignedInt(s, 2); //Parse as binary
System.out.println(n); //Output: 13
Nano 종료 및 코드 실행
Nano 를 종료하려면 Ctrl+X를 누른 다음, Y를 눌러 파일을 저장하고 Enter를 누릅니다.
터미널에서 코드를 실행하려면 다음 명령을 사용하여 컴파일할 수 있습니다.
javac UnsignedIntegerParser.java
그런 다음, 다음 명령을 사용하여 실행할 수 있습니다.
java UnsignedIntegerParser
요약
이 Lab 에서 우리는 Java 의 parseUnsignedInt() 메서드를 사용하여 문자열 값을 부호 없는 10 진수 정수로 파싱하는 방법을 배웠습니다. 또한, 잘못된 입력 처리, 콘솔에서 입력 읽기, 문자열 목록에서 부호 없는 정수 파싱, 그리고 헬퍼 함수 사용법을 익혔습니다. 더불어, 더 큰 부호 없는 정수 파싱, 기수 (radix) 사용, 그리고 터미널에서 코드 실행하는 방법도 배웠습니다.



