문자열 -> 정수 변환
변환 방법
- 문자열(String)을 Integer또는 int로 변환하기 위해 래퍼 클래스 Integer의 몇가지 메소드(parseInt(), valueOf(), decode())를 제공합니다.
1. 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
2. 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
3. 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] - contains, indexOf, matches() (0) | 2023.11.13 |
---|---|
[JAVA] - JPA란 / Hibernate란 (0) | 2023.11.10 |
[JAVA] - 람다식 (1) | 2023.10.17 |
[JAVA] - Comparable과 Comparator의 차이 (0) | 2023.10.16 |
[JAVA] - 배열 (0) | 2023.09.29 |