Java에서 문자열(String)을 정수(Interger)로 변환하는 작업은 빈번하게 발생합니다. 정수를 문자열로 변환하는 작업도 마찬가지입니다.
이번 포스팅은 JDK의 기본 메서드를 사용하여 문자열을 정수로 변환하는 여러 방법들을 소개합니다.
문자열을 정수로 변환
문자열(Stirng)을 Integer 또는 int로 변환하기 위해 래퍼 클래스 Integer는 몇 가지 메서드(parseInt(), valueOf() 및 decode())를 제공합니다.
Integer.parseInt() 메서드
parseInt() 메서드는 전달받은 문자열을 원시 타입인 int로 변환합니다. 문자열을 int로 변환할 수 없는 경우 NumberFormatException 예외가 발생합니다.
String str = "100";
int num1 = Integer.parseInt(str);
System.out.println("num: " + num1);
실행 결과
num: 100
parseInt() 메서드는 두 번째 매개변수가 생략된 경우 10진수로 변환된 값을 반환합니다. 10진수가 아닌 다른 진수로 변환하고 싶은 경우 두 번째 매개변수에 변환하고자 하는 진수를 전달합니다.
String str1 = "100";
String str2 = "Google";
int num1 = Integer.parseInt(str1, 16);
int num2 = Integer.parseInt(str2, 32);
System.out.println("num1: " + num1);
System.out.println("num2: " + num2);
실행 결과
num1: 256
num2: 562840238
Integer.valueOf() 메서드
valueOf() 메서드는 parseInt() 메서드와 달리 int가 아닌 Integer를 반환합니다. 문자열을 변환할 수 없는 경우 NumberFormatException 예외가 발생합니다.
String str1 = "50";
String str2 = "100";
String str3 = "Google";
int num1 = Integer.valueOf(str1);
int num2 = Integer.valueOf(str2, 16);
int num3 = Integer.valueOf(str3, 32);
System.out.println("num1: " + num1);
System.out.println("num2: " + num2);
System.out.println("num3: " + num3);
실행 결과
num1: 50
num2: 256
num3: 562840238
Integer.decode() 메서드
decode() 메서드는 다른 메서드와 달리 재정의(Override)된 형태가 존재하지 않습니다. 마찬가지로 문자열을 변환할 수 없는 경우 NumberFormatException 예외가 발생합니다.
String str1 = "50";
String str2 = "100";
int num1 = Integer.decode(str1);
int num2 = Integer.decode(str2);
System.out.println("num1: " + num1);
System.out.println("num2: " + num2);
실행 결과
num1: 50
num2: 100
decode() 메서드는 8진수, 10진수, 16진수를 허용하지만 2진수는 지원하지 않습니다.
String str1 = "030";
String str2 = "0x30";
int num1 = Integer.decode(str1);
int num2 = Integer.decode(str2);
System.out.println("num1: " + num1);
System.out.println("num2: " + num2);
실행 결과
num1: 24
num2: 48
parseInt() 및 valueOf() 메서드와 달리 숫자가 아닌 문자열은 변환할 수 없습니다.
String str = "Google";
int num = Integer.decode(str);
System.out.println("num: " + num);
실행 결과
'Java > 문자열' 카테고리의 다른 글
[Java]문자열 배열을 문자열로 변환(String Array to String) (1) | 2022.05.07 |
---|---|
[Java]정수를 문자열로 변환(Int to String) (0) | 2022.04.10 |
[Java]문자열을 날짜로 변환하는 방법 (0) | 2022.04.09 |
[Java]문자열에서 특정 문자열이 포함되어 있는지 확인 (0) | 2022.04.08 |
[Java]특정 문자열로 시작하는지 확인하는 방법 (0) | 2022.04.08 |
댓글