Kotlin 코딩테스트 문법 시리즈 ⑰ : 타입 변환 & 확장 유틸

2025. 7. 17. 06:00·Code Odyssey

✅ 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
'Code Odyssey' 카테고리의 다른 글
  • [Android] Activity Lifecycle 실습 중 onDestroy() 이슈 정리
  • Kotlin 코딩테스트 문법 시리즈 ⑯ : 널 처리 & 안전 호출
  • Kotlin 코딩테스트 문법 시리즈 ⑮ : 람다, 수신 함수, 클로저 개념과 활용
  • Kotlin 코딩테스트 문법 시리즈 ⑭ : 함수 패턴 정리
Celion
Celion
오늘도 평소처럼 화이팅!
  • Celion
    Orion Log
    Celion
  • 전체
    오늘
    어제
    • 전체 글 (144)
      • Uncompiled Thoughts (8)
        • 네이버 부스트캠프 10기 (5)
      • CS 기초부터 한 걸음씩 (34)
      • Code Odyssey (22)
      • Algorithm (77)
        • Coding Test Records (63)
      • Git (3)
      • reference (0)
  • 블로그 메뉴

    • 태그
    • 방명록
  • 태그

    java
    Kotlin
    알고리즘고득점kit
    boostcamp
    greedy
    시뮬레이션
    백준
    코테
    문법정리
    프로그래머스
    Level2
    Level3
  • 최근 글

  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.4
Celion
Kotlin 코딩테스트 문법 시리즈 ⑰ : 타입 변환 & 확장 유틸
상단으로

티스토리툴바