9-28~31 오토박싱 & 언박싱, 문자열과 숫자변환

oyeon·2020년 12월 22일
0

Java 개념

목록 보기
17/70

문자열을 숫자로 변환하기

  • 문자열을 숫자 & Wrapper로 변환하는 다양한 방법
int i = new Integer("100").intValue();	// floatValue(), longValue(), ...
int i2 = Integer.parseInt("100");	// 주로 이 방법을 많이 사용.
Integer i3 = Integer.valueOf("100");	// Float.valueOf("100"), Long.valueOf("100")..
int i3 = Integer.valueOf("100");	// 위와 동일
  • n진법의 문자열을 숫자로 변환하는 방법
int i2 = Integer.parseInt("100");
int i3 = Integer.parseInt("100", 10);	// 위와 동일
int i4 = Integer.parseInt("100", 2);	// 100(2) -> 4
int i5 = Integer.parseInt("100", 8);	// 100(8) -> 64
int i6 = Integer.parseInt("100", 16);	// 100(16)-> 256
int i7 = Integer.parseInt("FF", 16);	// FF(16) -> 255
int i8 = Integer.parseInt("FF");	// NumberFormatException(10진수에 FF가 없으므로)

오토박싱 & 언박싱

  • 기본형과 참조형간의 자동변환
  • 오토박싱 : 기본형 int -> Wrapper 클래스인 Integer로 자동 변환
  • 언박싱 : Wrapper 클래스인 Integer -> 기본형 int로 자동 변환

public static void main(String[] args) {
    int i = 10;
    ArrayList<Integer> list = new ArrayList<Integer>();
    list.add(new Integer(100));	// list에는 객체만 추가가능. 정석.
    list.add(100);		// OK. 컴파일러가 위 코드로 바꿔줌(오토박싱)
    
    Integer i = list.get(0);		// list에 저장된 첫번째 객체를 꺼낸다.
    int i = list.get(0).intValue();	// intValue()로 Integer를 int로 변환. 정석.
    int i = list.get(0);		// OK. 컴파일러가 위 코드로 바꿔줌(언박싱)
    
    // 기본형을 참조형으로 형변환(형변환 생략가능)
    Integer intg = (Integer)i;	// Integer intg = Integer.valueOf(i);
    Object obj = (Object)i;	// Object obj = (Object)Integer.valueOf(i);
    
    Long lng = 100L;		// Long lng = new Long(100L);
    
    int i2 = intg + 10;		// 참조형과 기본형간의 연산 가능
    long l = intg + lng;	// 참조형 간의 덧셈도 가능
    
    Integer intg2 = new Integer(20);
    int i3 = (int)intg2;	// 참조형을 기본형으로 형변환도 가능(형변환 생략가능)
}
profile
Enjoy to study

0개의 댓글