Java 문자열을 정수로 쉽게 변환: 단계별 가이드
Java에서 숫자 문자열을 정수로 변환하는 것은 흔한 작업이지만 올바르게 다루지 않으면 초보자를 곤란하게 만듭니다. 아래에서 가장 자주 쓰이는 두 메서드 Integer.parseInt()와 Integer.valueOf()를 사용한 명확하고 간결한 예제를 확인하세요. 둘 다 같은 변환을 수행하지만 반환 타입과 성능에서 약간 다릅니다.
Integer.parseInt()로 문자열을 정수로 변환
Integer.valueOf()로 문자열을 정수로 변환

숫자를 나타내는 문자열이 있다고 가정:
String strTest = "100";
문자열에 직접 산술 연산 시도하면 Java는 변수를 텍스트로 취급해 컴파일 타임 에러 발생:
class StrConvert{
public static void main(String []args){
String strTest = "100";
System.out.println("Using String:" + (strTest/4));
}
}
출력:
/StrConvert.java:4: error: bad operand types for binary operator '/'
System.out.println("Using String:" + (strTest/4));
산술 연산 위해선 먼저 문자열을 정수로 변환해야 합니다.
예제 1: Integer.parseInt()로 문자열을 정수 변환
parseInt 메서드는 원시 int 반환. 빠르고 객체 참조 불필요할 때 이상적.
문법:
int iTest = Integer.parseInt(strTest);
전체 예제:
class StrConvert{
public static void main(String []args){
String strTest = "100";
int iTest = Integer.parseInt(strTest);
System.out.println("원본 문자열:" + strTest);
System.out.println("변환된 정수:" + iTest);
// 이제 산술 연산 가능
System.out.println("정수 산술 연산: " + (iTest/4));
}
}
출력:
원본 문자열:100
변환된 정수:100
정수 산술 연산: 25
예제 2: Integer.valueOf()로 문자열을 정수 변환
valueOf 메서드는 Integer 객체 반환. 오토박싱 덕분에 int 변수에 직접 할당 가능하지만 객체 생성으로 약간 느림.
전체 예제:
public class StrConvert{
public static void main(String []args){
String strTest = "100";
int iTest = Integer.valueOf(strTest); // int로 오토언박싱
System.out.println("원본 문자열:" + strTest);
System.out.println("변환된 정수:" + iTest);
System.out.println("정수 산술 연산:" + (iTest/4));
}
}
출력:
원본 문자열:100
변환된 정수:100
정수 산술 연산:25
잘못된 숫자 처리: NumberFormatException
문자열이 유효한 정수를 나타내지 않으면 parseInt와 valueOf 모두 NumberFormatException 발생. 이는 프로그램의 무음 실패를 방지합니다.
예제:
public class StrConvert{
public static void main(String []args){
String strTest = "Guru99";
int iTest = Integer.valueOf(strTest);
System.out.println("원본 문자열:" + strTest);
System.out.println("변환된 정수:" + iTest);
}
}
출력:
Exception in thread "main" java.lang.NumberFormatException: For input string: "Guru99"
모범 사례: 변환 전 문자열 검증하거나 try-catch 블록으로 예외 우아하게 처리.
더 깊은 통찰은 공식 Java 문서 참조: Integer.parseInt 및 Integer.valueOf.