Java/문자열

[Java]문자열을 정수로 변환(String to Int)

DevStory 2022. 4. 9.

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);

실행 결과

반응형

댓글