✅ Kotlin에서는 기본 타입 변환 외에도 문자열 ↔ 숫자, 리스트 ↔ 문자열 등의 변환이 자주 등장합니다.
확장 함수와 Java 유틸을 함께 활용하면 코테에서 빠르고 간결한 처리가 가능합니다.
🔹 1. 기본 타입 변환 함수
val s = "123"
val i = s.toInt() // 문자열 → Int
val d = "3.14".toDouble() // 문자열 → Double
val f = "42.0".toFloat() // 문자열 → Float
val b = 255.toByte() // Int → Byte
val str = 42.toString() // 숫자 → 문자열
val c = '7'.digitToInt() // 문자 → Int (0~9만)
- .toXxx() 계열은 모든 기본 타입 변환 지원
- digitToInt()는 숫자형 문자 변환 시 안전하게 사용됨
🔹 2. 컬렉션 전체 타입 변환
val strs = listOf("1", "2", "3")
val nums = strs.map { it.toInt() } // List<Int>
val digits = "12345".map { it.digitToInt() } // CharSequence → List<Int>
- map {}을 통해 전체 변환 가능
- 문자열 순회도 map {}으로 처리 가능
🔹 3. 문자열 ↔ 리스트 / 배열 변환
val str = "hello"
val chars = str.toList() // 문자열 → List<Char>
val arr = str.toCharArray() // 문자열 → CharArray
val joined = listOf(1,2,3).joinToString() // List<Int> → "1, 2, 3"
val split = readLine()!!.split(" ") // 문자열 → List<String>
🔹 4. 진법 변환 / 비트 유틸
val num = 42
val binary = Integer.toBinaryString(num) // "101010"
val hex = Integer.toHexString(num) // "2a"
val parsed = "101010".toInt(2) // 이진 문자열 → Int
- Java의 Integer 유틸을 그대로 활용 가능
🔹 5. 확장 함수 정의 예시
fun String.onlyDigits(): String = filter { it.isDigit() }
fun List<Int>.sumSquares(): Int = sumOf { it * it }
val s = "a1b2c3"
println(s.onlyDigits()) // "123"
val nums = listOf(1, 2, 3)
println(nums.sumSquares()) // 14
- 기존 타입에 함수 추가 → 재사용성과 가독성 향상
- 입력 정제, 변환, 누적 계산 등에 다양하게 사용 가능
🔹 6. 기타 유용한 확장 유틸
val arr = intArrayOf(1, 2, 3)
println(arr.joinToString()) // "1, 2, 3"
val padded = "7".padStart(3, '0') // "007"
val trimmed = " Kotlin ".trim() // "Kotlin"
val bitCount = num.countOneBits() // 비트 1 개수 (JDK 1.8+)
- padStart, trim, joinToString, countOneBits() 등 유용한 확장 메서드들 다수 존재
✅ 정리
목적 방법/함수 예시 결과 예시
| 문자열 → 숫자 | "123".toInt() | 123 |
| 숫자 → 문자열 | 42.toString() | "42" |
| 문자 → 숫자 | '7'.digitToInt() | 7 |
| 문자열 → 리스트 | "abc".toList() | [a, b, c] |
| 리스트 → 문자열 | listOf(1,2).joinToString() | "1, 2" |
| 이진수 변환 | Integer.toBinaryString(42) | "101010" |
| 확장 함수 정의 | fun String.onlyDigits() | "a1b2" → "12" |
| 자릿수 채우기, 공백 제거 | padStart, trim() | "007", "Kotlin" |
| 배열 문자열 출력 | arr.joinToString() | "1, 2, 3" |
| 비트 개수 계산 | num.countOneBits() | ex: 42 → 3 |
Kotlin은 Java 유틸과 Kotlin 확장 함수 모두 적극 활용하면 다양한 변환을 간결하고 안전하게 구현할 수 있습니다.
'Code Odyssey' 카테고리의 다른 글
| [Android] Activity Lifecycle 실습 중 onDestroy() 이슈 정리 (0) | 2025.08.19 |
|---|---|
| Kotlin 코딩테스트 문법 시리즈 ⑯ : 널 처리 & 안전 호출 (0) | 2025.07.16 |
| Kotlin 코딩테스트 문법 시리즈 ⑮ : 람다, 수신 함수, 클로저 개념과 활용 (0) | 2025.07.15 |
| Kotlin 코딩테스트 문법 시리즈 ⑭ : 함수 패턴 정리 (3) | 2025.07.14 |
| Kotlin 코딩테스트 문법 시리즈 ⑬ : Scope Function 정리 (let, also, apply, run, takeIf) (0) | 2025.07.13 |