/ JAVAJUNGSUK

Ch9-28~31. 문자열 → 숫자

자바의 정석 기초편

0. 목차



Chapter9. java.lang 패키지와 유용한 클래스

Ch9 - 28. 문자열을 숫자로 변환하기

Ch9 - 29. 문자열을 숫자로 변환하기 예제

Ch9 - 30. 오토박싱 & 언박싱

Ch9 - 31. 오토박싱 & 언박싱 예제



Ch9 - 28. 문자열을 숫자로 변환하기


▶ 문자열 → 숫자 변환하는 다양한 방법

▷ Integer → int
  • int i1 = new Integer("100").intValue();
  • int i2 = Integer.parseInt("100");
  • Integer i3 = Integer.valueOf("100");

▶ 문자열 → 기본형 & 문자열 → 래퍼 클래스 변환하는 다양한 방법




Ch9 - 29. 문자열을 숫자로 변환하기 예제


▶ n진법 문자열 → 숫자 변환

▷ 2진수, 8진수, 10진수, 16진수 다양한 방법으로 변환
int i = Integer.parseInt("100");
int i1 = Integer.parseInt("100", 2);
int i2 = Integer.parseInt("100", 8);
int i3 = Integer.parseInt("100", 16);
int i4 = Integer.parseInt("FF", 16);
int i5 = Integer.parseInt("FF");

// console
100 // i 10진수, 아무것도 적지 않으면 10진수
4   // i1 2진수
64  // i2 8진수
256 // i3 16진수
255 // i4 16진수에서 FF = 255
NumberFormatException 발생 // i5 10진수에 FF없음



Ch9 - 30. 오토박싱 & 언박싱


▶ 오토박싱(AutoBboxing)이란?

▷ int → Integer
▷ 즉 기본형 → 래퍼 클래스 변환하는 것
▷ jdk1.5 이전에는 기본형과 참조형 간의 연산이 불가능
  • jdk1.5 이전
      int i = 5;
      Integer iObj = new Integer(7);
        
      int sum = i + iObj; // ERROR! 기본형 + 참조형 덧셈 불가
    
  • jdk1.5 이후
  • 기본형-참조형 연산 : 컴파일 자동 형변환
      int i = 5;
      Integer iObj = new Integer(7);
        
      int sum = i + iObj.intValue(); // 오토박싱, 기본형을 Integer로 감싸줌
    

▶ 언박싱이란?

▷ int ← Integer
▷ 즉 기본형 ← 래퍼 클래스 변환하는 것
  • jdk1.5 이후
      ArrayList<Integer> list = new ArrayList<Integer>(); // Integer만 들어갈 수 있는 배열
      List.add(10); // Integer만 들어갈 수 있는데? → 오토박싱 → list.add(new Integer(10));
        
      int value = list.get(0); // Integer를 int로 받고싶다고 바로 int value라고 작성 → 언박싱 → Integer intValue() 해 줌
    



Ch9 - 31. 오토박싱 & 언박싱 예제


▶ 기본형과 참조형 간의 자동 변환

▷ 컴파일 전
int i = 10;

Integer intg = (Integer)i; 
Object obj = (Object)i;
Long lng = 100L;

int i2 = intg + 10;
long l = intg + lng;
▷ 컴파일 후
int i = 10;

Integer intg = Integer.valueOf(i); // int → Integer 오토박싱
Object obj = (Object)Integer.valueOf(i); // int → Object 오토박싱
Long lng = new Long(100L); // Long → long 언박싱

int i2 = intg + 10; // Integer + int
long l = intg + lng; // Integer + long