4.10 문자열 타입 변환
프로그래밍을 하다 보면 숫자처럼 생긴 문자열("100")을 진짜 숫자(100)로 바꿔야 할 때가 많습니다.
반대로 숫자를 문자열로 바꿔야 할 때도 있죠.
이 변환(Conversion) 방법에 대해 알아봅니다. 🔄
1. 문자열 ➡️ 기본 타입 (Parsing)
1) 개념
문자열(String)을 int, double, boolean 등의 기본 타입으로 바꾸는 것을 파싱(Parsing)이라고 합니다.
자바에서는 각 타입의 포장 클래스(Wrapper Class)가 가진 parse...() 메소드를 사용합니다.
2) 비유: “포장지 뜯기”
"100"은 숫자 100이 문자열 포장지에 싸여있는 상태입니다.- 파싱(Parsing)은 이 포장지를 뜯어서 알맹이인 숫자
100을 꺼내는 작업입니다.
3) 변환 방법 표
| 변환 방향 | 비유 | 메소드 (코드) |
|---|---|---|
| String ➡ byte | 소주잔에 따르기 | Byte.parseByte("10") |
| String ➡ short | 머그컵에 따르기 | Short.parseShort("200") |
| String ➡ int | 물동이에 따르기 (가장 많이 씀) | Integer.parseInt("1000") |
| String ➡ long | 물탱크에 따르기 | Long.parseLong("100000") |
| String ➡ float | 작은 자로 재기 | Float.parseFloat("3.14") |
| String ➡ double | 정밀한 자로 재기 | Double.parseDouble("3.14159") |
| String ➡ boolean | 스위치 확인하기 | Boolean.parseBoolean("true") |
4) 변환 과정 시각화
graph LR
Str["String '123'"] --> Parser[Integer.parseInt()]
Parser --> Int[int 123]
style Str fill:#f9f,stroke:#333
style Parser fill:#ff9,stroke:#333
style Int fill:#bfb,stroke:#333
2. 기본 타입 ➡️ 문자열 (String.valueOf)
1) 개념
반대로 숫자나 불리언 값을 문자열로 바꿀 때는 String.valueOf() 메소드를 사용합니다.
가장 간단하고 강력한 방법입니다.
2) 코드 예시
int a = 100;
String s1 = String.valueOf(a); // 100 -> "100"
double b = 3.14;
String s2 = String.valueOf(b); // 3.14 -> "3.14"
boolean c = true;
String s3 = String.valueOf(c); // true -> "true"
꿀팁: 빈 문자열(
"")을 더해도 문자열로 변합니다.String s = 100 + "";👉"100"
3. 주의: 변환할 수 없는 문자열 ⚠️
숫자가 아닌 문자열을 억지로 숫자로 바꾸려 하면 에러(예외)가 발생합니다.
String str = "1a2b3c"; // 숫자가 아님!
int value = Integer.parseInt(str); // (X) NumberFormatException 발생 💥
- 비유: “사과”라는 글자를 숫자로 바꿀 수 없는 것과 같습니다. 반드시 숫자 형태의 문자열만 변환해야 합니다.
서브목차