Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Method
- Counting
- string
- two pointers
- SQL
- Stack
- greedy
- implement
- 자바
- simulation
- Math
- bit manipulation
- array
- dynamic programming
- hash table
- Class
- Binary Search
- Data Structure
- database
- 코딩테스트
- geometry
- Number Theory
- Matrix
- sorting
- 파이썬
- 구현
- 코테
- Binary Tree
- Tree
- java
Archives
- Today
- Total
코린이의 소소한 공부노트
문자열의 여러 가지 변환, 오토박싱, 언박싱 본문
[문자열을 여러 가지로 변환하기]
1. 문자열을 기본형으로 변환
int i1 = Integer.parseInt("100");
int i2 = Integer.valueOf("100"); // 래퍼 클래스 변환에도 쓰임
2. 문자열을 래퍼 클래스로 변환
Integer i3 = new Integer("100").intValue();
Integer i4 = Integer.valueOf("100"); // 기본형 변환에도 쓰임
3. 래퍼 클래스를 문자열로 변환
String s = i4.toString();
4. n진법의 문자열을 숫자로 변환
int i5 = Integer.parseInt("100", 2); // 100(2) = 4
int i6 = Integer.parseInt("100", 8); // 100(8) = 64
int i7 = Integer.parseInt("100", 16); // 100(16) = 256
int i8 = Integer.parseInt("FF", 16); // FF(16) = 255
int i9 = Integer.parseInt("FF"); // Exception in thread "main" java.lang.NumberFormatException
// 진수를 생략하면 10진수로 간주하는데
// 10진수에 F라는 수는 없기 때문에 에러 발생
[오토박싱, 언박싱]
- 오토박싱은 기본형을 래퍼 클래스로 변환하는 것을 말하고
- 언박싱은 래퍼 클래스를 기본형으로 변환하는 것을 말한다.
- 둘 다 컴파일러가 자동으로 변환해준다.
((예제1)) 기본형과 참조형의 연산
int i1 = 5;
Integer i2 = new Integer(8);
int sum = i1 + i2;
// jdk1.5 이전: error -> 기본형과 참조형간의 연산 불가능
// jdk1.5 이후: sum = 13 -> 컴파일러가 아래처럼 코드를 바꿔주기 때문에
int sum = i1 + i2.intValue();
((예제2)) ArrayList
ArrayList에는 원래 객체만 저장 가능한데, 컴파일러가 알아서 변환해준다. 그래서 우리가 실제 사용할 때는 주석 처리되지 않은 3줄만 써도 충분하다.
ArrayList<Integer> list = new ArrayList<Integer>();
// 1) 리스트에 100 추가
// list.add(new Integer(100)); // 오토박싱을 해주기 때문에 이렇게 안 해도 된다.
list.add(100);
// 2) 리스트의 첫 번째 값 반환
// Integer i1 = list.get(0); // list의 첫 번째 객체 반환
// 기본형으로 반환 받으려면?
// int i2 = list.get(0).intValue(); // 언박싱을 해주기 때문에 이렇게 안 해도 된다.
int i2 = list.get(0);
((예제3)) 형변환
기본형을 참조형으로 형변환할 때 형변환 연산자를 사용하지 못하는 게 원칙인데, 이를 허용해준 것이 오토박싱이다.
// 기본형을 참조형으로 형변환(형변환 생략 가능)
int i = 100;
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);
Integer intg2 = new Integer(100);
int i3 = (int)intg2; // 참조형을 기본형으로 형변환도 가능(형변환 생략 가능)
'Java' 카테고리의 다른 글
형식화 클래스 (0) | 2022.10.21 |
---|---|
캘린더 클래스 (0) | 2022.10.12 |
래퍼 클래스, 넘버 클래스 (0) | 2022.10.11 |
StringBuilder 클래스 (0) | 2022.08.24 |
Math 클래스 (0) | 2022.08.24 |