문자열이란?
문자열(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!"]
'자료구조&알고리즘 > Kotlin 활용' 카테고리의 다른 글
Kotlin 연습하기(5) - 버블정렬 (0) | 2025.04.02 |
---|---|
Kotlin 연습하기(4)-재귀함수 (0) | 2025.03.31 |
Kotlin 연습하기(1) (0) | 2025.03.21 |
프로그래머스 - 3진법 뒤집기 (level 1) (0) | 2024.09.09 |
프로그래머스 - 짝지어 제거하기(level2) (0) | 2024.09.04 |