🔤 문자열
📖 문자열이란?
**문자열(String)**은 텍스트를 저장하는 타입입니다. 이름, 메시지, 설명 등 모든 텍스트 데이터를 다룹니다.
💡 문자열 생성
기본 문자열
fun main() {
val name = "홍길동"
val message = "안녕하세요!"
val empty = ""
println(name) // 홍길동
println(message) // 안녕하세요!
println(empty) // (빈 문자열)
}
여러 줄 문자열
fun main() {
// 일반 문자열 (한 줄)
val oneLine = "첫 번째 줄\n두 번째 줄"
// 여러 줄 문자열 (트리플 따옴표)
val multiLine = """
안녕하세요!
저는 홍길동입니다.
반갑습니다.
""".trimIndent()
println(multiLine)
}
🎨 문자열 템플릿
변수 삽입
fun main() {
val name = "홍길동"
val age = 25
// $ 기호로 변수 삽입
println("이름: $name") // 이름: 홍길동
println("나이: $age살") // 나이: 25살
// ${} 로 표현식 삽입
println("내년 나이: ${age + 1}살") // 내년 나이: 26살
}
복잡한 표현식
fun main() {
val price = 15000
val quantity = 3
val message = "총 가격: ${price * quantity}원"
println(message) // 총 가격: 45000원
val name = "홍길동"
val greeting = "안녕하세요, ${name.uppercase()}님!"
println(greeting) // 안녕하세요, 홍길동님!
}
🔧 문자열 연산
결합 (Concatenation)
fun main() {
val firstName = "길동"
val lastName = "홍"
// + 연산자
val fullName = lastName + firstName
println(fullName) // 홍길동
// 템플릿이 더 편함!
val fullName2 = "$lastName$firstName"
println(fullName2) // 홍길동
}
반복
fun main() {
val star = "⭐"
println(star.repeat(5)) // ⭐⭐⭐⭐⭐
println("ha".repeat(3)) // hahaha
println("-".repeat(10)) // ----------
}
📏 문자열 속성과 메서드
길이
fun main() {
val text = "Hello"
println(text.length) // 5
println(text.isEmpty()) // false
println(text.isNotEmpty()) // true
val empty = ""
println(empty.isEmpty()) // true
}
대소문자 변환
fun main() {
val text = "Hello Kotlin"
println(text.uppercase()) // HELLO KOTLIN
println(text.lowercase()) // hello kotlin
println(text.capitalize()) // Hello kotlin (Deprecated)
}
공백 제거
fun main() {
val text = " Hello "
println(text.trim()) // "Hello"
println(text.trimStart()) // "Hello "
println(text.trimEnd()) // " Hello"
}
🔍 문자열 검색
포함 여부
fun main() {
val text = "Hello Kotlin"
println(text.contains("Kotlin")) // true
println(text.contains("Java")) // false
println(text.startsWith("Hello")) // true
println(text.endsWith("Kotlin")) // true
}
찾기
fun main() {
val text = "Hello Kotlin"
val index = text.indexOf("Kotlin")
println(index) // 6
val notFound = text.indexOf("Java")
println(notFound) // -1 (없으면)
}
✂️ 문자열 분리와 자르기
분리 (split)
fun main() {
val text = "사과,바나나,포도"
val fruits = text.split(",")
println(fruits) // [사과, 바나나, 포도]
for (fruit in fruits) {
println("- $fruit")
}
// - 사과
// - 바나나
// - 포도
}
자르기 (substring)
fun main() {
val text = "Hello Kotlin"
println(text.substring(0, 5)) // Hello
println(text.substring(6)) // Kotlin
// 범위로
println(text.substring(0..4)) // Hello
}