[JAVA] java.lang패키지와 유용한 클래스 - 오토박싱&언박싱, 문자열과 숫자변환

선영·2022년 9월 1일
post-thumbnail

문자열을 숫자로 변환하기

  • 문자열을 숫자로 변환하는 다양한 방법
  int i = new Integer("100").intValue();  // floatValue(), longValue(), ...
  int i2 = Integer.parseInt("100");       // 주로 이 방법을 많이 사용.
  Integer i3 = Integer.valueOf("100"); 

  • n진법의 문자열을 숫자로 변환하는 방법
  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발생

오토박싱 & 언박싱

  • 오토박싱(autoboxing) : 기본형 → 래퍼 클래스 객체 (참조형)
    언박싱(unboxing) : 래퍼 클래스 객체 (참조형) → 기본형
  • JDK1.5 이전에는 기본형과 참조형 간의 연산이 불가능했기 때문에, 래퍼 클래스로 기본형을 객체로 만들어서 연산해야 했음.
  int i = 5; 
  Integer iObj = new Integer(7); 
  int sum = i + iObj; // 에러. 기본형과 참조형 간 덧셈 불가(JDK1.5이전) 
  • 이제는 기본형과 참조형 간의 덧셈이 가능함. 자바 언어의 규칙이 바뀐 것은 아니고, 컴파일러가 자동으로 변환하는 코드를 넣어주기 때문.
 // 기본형을 참조형으로 형변환(형변환 생략가능)
	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;  // 참조형을 기본형으로 형변환도 가능(형변환 생략가능)

0개의 댓글