🔄 Java / Python / JavaScript 형변환 정리
기본형 ↔ 문자열(String) 간 변환, 숫자 ↔ 숫자, 암시적/명시적 변환
✅ 1. 숫자 → 문자열
| Java |
Python |
JavaScript |
| String.valueOf(123) |
str(123) |
String(123) or 123.toString() |
int num = 123;
String s = String.valueOf(num);
num = 123
s = str(num)
let num = 123;
let s = String(num);
// 또는
let s2 = num.toString();
✅ 2. 문자열 → 숫자
| Java |
Python |
JavaScript |
| Integer.parseInt("123")Double.parseDouble("3.14") |
int("123")float("3.14") |
Number("123")parseInt("123")parseFloat("3.14") |
String s = "123";
int num = Integer.parseInt(s);
s = "123"
num = int(s)
let s = "123";
let num = Number(s);
// 또는
let num2 = parseInt(s);
🔸 주의: "123abc"은 Number()에선 NaN, parseInt()는 123만 추출됨.
✅ 3. 실수 ↔ 정수
| Java |
Python |
JavaScript |
| (int) 3.14Math.round() |
int(3.14)round(3.14) |
Math.floor(3.14)Math.round(3.14) |
double d = 3.14;
int i = (int) d; // 결과: 3
i = int(3.14) # 결과: 3
r = round(3.14) # 결과: 3
let i = Math.floor(3.14); // 결과: 3
let r = Math.round(3.14); // 결과: 3
✅ 4. 숫자 ↔ 불리언 (Boolean)
| Java |
Python |
JavaScript |
| boolean b = (num != 0) |
bool(num) |
Boolean(num) |
int x = 10;
boolean b = (x != 0); // true
bool(0) # False
bool(123) # True
Boolean(0) // false
Boolean(123) // true
✅ 5. 문자열 ↔ 불리언
| Java |
Python |
JavaScript |
| 없음 (직접 비교해야 함) |
bool("False") → True (빈 문자열만 False) |
Boolean("false") → true |
String s = "true";
boolean b = s.equalsIgnoreCase("true");
bool("") # False
bool("False") # True
Boolean("") // false
Boolean("false") // true
🔸 주의: 문자열 "false"는 JavaScript에서 true로 처리됨. 문자열은 빈 문자열만 false.
✅ 6. 객체 → 문자열 (toString)
| Java |
Python |
JavaScript |
| .toString() 메서드 (오버라이딩 가능) |
str(obj)__str__() 오버라이딩 |
obj.toString()JSON.stringify(obj) |
Person p = new Person();
System.out.println(p.toString());
class Person:
def __str__(self):
return "Person object"
print(str(Person()))
let obj = { name: "Tom" };
console.log(obj.toString()); // [object Object]
console.log(JSON.stringify(obj)); // {"name":"Tom"}
✅ 7. 암시적 형변환
| Java |
Python |
JavaScript |
| 없음 (항상 명시적) |
정수+실수 자동 형변환 |
매우 많음 (문자열+숫자 → 문자열 등) |
// 반드시 명시적 캐스팅 필요
double d = 3;
int i = (int) d;
x = 3 + 3.5 # 결과: 6.5 (자동 float 변환)
"5" + 1 // "51" (문자열로 변환됨)
"5" - 1 // 4 (숫자로 변환됨)
🧠 요약 포인트
| 구분 |
Java |
Python |
JavaScript |
| 명시적 형변환 |
매우 엄격 |
자유롭고 직관적 |
자유롭지만 혼란스러울 수 있음 |
| 암시적 변환 |
거의 없음 |
일부 있음 |
매우 흔함 |
| 문자열 → 숫자 |
Integer.parseInt() |
int() |
Number(), parseInt() |
| 문자열 → 불리언 |
직접 비교 필요 |
빈 문자열만 False |
빈 문자열만 False |
| 숫자 → 문자열 |
String.valueOf() |
str() |
String(), .toString() |
댓글