문자열이란?

문자열(String) 이란 여러 문자가 이어진 데이터이다. 예를 들어, "Hello, Kotlin!" 은 하나의 문자열이다.

 

문자열에서 인덱스 (Index)도 중요한데 인덱스란 문자열의 각 문자의 순서를 나타내며, 첫 번째 문자는 0번 인덱스이다.

val text = "Hello"
println(text[0]) // 출력: H
println(text[1]) // 출력: e

 

Kotlin에서는 문자열을 다루기 위한 다양한 내장 함수를 제공한다.

  • reversed() : 문자열을 뒤집는다.
  • length : 문자열의 길이를 반환한다.
  • contains() : 특정 문자가 포함되어 있는지 확인한다. 리턴값은  true / false
  • split() : 문자열을 특정 구분자로 나눈다.
fun main() {
    val text = "Kotlin Programming"
    println("원본 문자열: $text")
    println("뒤집은 문자열: ${text.reversed()}")   // 뒤집기
    println("문자열 길이: ${text.length}")          // 길이 출력
    println("포함 여부 (o): ${text.contains("o")}")   // 'o'가 포함되었는지
    println("단어 분리: ${text.split(" ")}")          // 공백을 기준으로 분리
}

 

 

 

문제 예시

1. 문자열 뒤집기

  - 문제 설명 : 사용자가 입력한 문자열을 뒤집어서 출력하는 코드를 작성해보자

  - 힌트 : Kotlin의 내장 함수를 사용할 수 있다.

더보기
fun reverseString(str: String): String {
    return str.reversed()
}

fun main() {
    val input = "Hello, Kotlin!"
    println("원본 문자열: $input")
    println("뒤집은 문자열: ${reverseString(input)}")
}

 

 

2. 문자열에서 특정 문자 개수 세기

 - 문제 설명 : 주어진 문자열에서 특정 문자가 몇 번 등장하는지 계산하는 코드를 작성해보자.

 - 힌트 : 반복문과 조건문을 사용하자

더보기
fun countChar(str: String, ch: Char): Int {
    var count = 0
    for (c in str) {
        if (c == ch) {
            count++
        }
    }
    return count
}

fun main() {
    val input = "banana"
    println("문자 'a'의 개수: ${countChar(input, 'a')}")
    // 출력: 문자 'a'의 개수: 3
}

 

 

3. 문자열에서 단어 개수 세기

 - 문제 설명 : 사용자가 입력한 문장에서 단어의 개수를 출력하는 코드를 작성해보자

 - 힌트 : Kotlin의 내장 함수를 사용하자

더보기
fun countWords(sentence: String): Int {
    // 공백을 기준으로 단어 분리 후, 분리된 리스트의 크기를 반환
    val words = sentence.trim().split("\\s+".toRegex())
    return words.size
}

fun main() {
    val sentence = "Kotlin is fun and powerful"
    println("단어 개수: ${countWords(sentence)}")
    // 출력: 단어 개수: 5
}



// val words = sentence.trim().split("\\s+".toRegex()) 동작 순서

// 1. sentence.trim()
// 동작: 입력된 문자열 sentence의 앞뒤(시작과 끝)에 있는 불필요한 공백(스페이스, 탭 등)을 제거합니다.
// 예시: " Hello Kotlin! " → "Hello Kotlin!"

// 2.  .split("\\s+".toRegex())
// 동작:
// trim()으로 정리된 문자열을 기준으로, 하나 이상의 공백 문자(정규표현식 \\s+)를 찾아서 해당 부분에서 문자열을 나눕니다.
// \\s+는 정규 표현식에서 "하나 이상의 공백 문자"를 의미합니다.
// .toRegex()는 문자열 "\\s+"를 정규식 객체로 변환해줍니다.
// 예시: "Hello Kotlin!" → ["Hello", "Kotlin!"]

 

 

 

 

 

 

 

 

 

 

+ Recent posts