본문 바로가기
Java

Java / Python / JavaScript 형변환(type casting) 정리

by clolee 2025. 3. 23.

🔄 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()

 

댓글