문자열을 숫자로 변환하기
int i = new Integer("100").intValue();
int i2 = new Integer.parseInt("100");
int(Integer 가능) i3 = new Integer.valueOf("100");
- n진법의 문자열을 숫자로 변환하는 방법 (2, 8, 16 ..)
int i = Integer.parseInt("100", 2);
int i = Integer.parseInt("100", 8);
예제
public class Ex1 {
public static void main(String[] args) {
System.out.println("i= "+Integer.parseInt("100"));
System.out.println("i= "+Integer.parseInt("100",10));
System.out.println("i= "+Integer.parseInt("100",2));
System.out.println("i= "+Integer.parseInt("FF",16));
}
}
오토박싱 & 언박싱
- int -> Integer처럼
기본형 -> 래퍼클래스
로 자동으로 바꿔주는 것을 오토박싱
- 반대로
래퍼클래스 -> 기본형
로 바꿔주는 것은 언박싱
- JDK 1.5 이전에는 기본형과 참조형간의 연산 불가능
int i = 5;
Integer iObj = new Integer(7);
int sum = i + iObj;
int i = 5;
Integer iObj = new Integer(7);
int sum = i + iObj.intValue();
- 기본형의 값을 객체로 자동변환하는 것을 오토박싱, 그 반대는 언박싱
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(10);
int value = list.get(0);
오토박싱 & 언박싱 예제1
public class Ex1 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(new Integer(100));
list.add(100);
int i = list.get(0).intValue();
int i = list.get(0);
}
}
오토박싱 & 언박싱 예제2
public class Ex1 {
public static void main(String[] args) {
int i = 10;
Integer intg = (Integer)i;
Object obj = (Object)i;
Long lng = 100L;
int i2 = intg + 10;
long l = intg + lng;
Integer intg2 = new Integer(20);
int i3 = (int)intg2;
}
}
정리
- 기본형, 래퍼클래스를 동일한 타입이라고 생각하고 사용가능
-> 왜? JDK 1.5 이후부터는 자동으로 컴파일과정에서 변환시켜주기 때문! (오토박싱 & 언박싱)