Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

밤빵's 개발일지

[TIL]20241021 문자열 자르기&합치기 본문

Kotlin

[TIL]20241021 문자열 자르기&합치기

최밤빵 2024. 10. 21. 21:05

코틀린을 학습하는 과정에서 문자열을 다루는 다양한 방법을 접하게 되었다. 그중에서도 문자열을 분리하거나(split, substring) 합치는(joinToString) 함수들은 매우 유용하게 사용되는 기능들이다. 오늘은 코틀린에서 제공하는 문자열 조작 함수들의 사용법을 학습하고, 예시를 만들어서 이해하려고 했다. 이러한 함수들은 실무에서 데이터 처리와 변환 작업을 더욱 효율적으로 수행할 수 있게 도와준다.

 

▶문자열 자르기: split 함수

split 함수는 문자열을 특정 구분자를 기준으로 나누어 리스트 형태로 반환하는 함수이다. 예를 들어, 문장에서 단어를 분리하거나 특정 구분자를 기준으로 여러 값을 나누어 처리할 때 유용하다.

 ▷사용법

val sentence = "Kotlin is a fun language"
val words = sentence.split(" ")
println(words)  // 출력: [Kotlin, is, a, fun, language]

" "(공백)을 기준으로 문자열을 분리하여 단어 리스트를 생성한다.

결과는 List<String> 형태로 반환되고, 각 단어가 리스트의 요소로 저장된다.

 

▷다양한 구분자 사용 예시

val data = "apple,banana,orange"
val fruits = data.split(",")
println(fruits)  // 출력: [apple, banana, orange]

→ 이번에는 쉼표(,)를 기준으로 문자열을 나누고, 이렇게 구분자가 있을 때 이를 이용해 데이터를 분리할 수 있다.

 

▶문자열 자르기: substring 함수

substring 함수는 문자열의 특정 위치에서부터 부분 문자열을 추출하는 함수이다. 시작 위치와 끝 위치를 지정하여 문자열의 일부분을 가져올 수 있다.

 ▷사용법

val text = "Kotlin Programming"
val subText = text.substring(0, 6)  // 시작 인덱스 0, 끝 인덱스 6
println(subText)  // 출력: Kotlin

substring(0, 6)은 문자열의 0번째부터 6번째 전까지의 부분 문자열을 가져온다.

"Kotlin Programming"에서 "Kotlin"만 추출되었다.

 

▷시작 위치만 지정하는 경우

val subText = text.substring(7)  // 시작 인덱스 7
println(subText)  // 출력: Programming
 → 시작 인덱스만 지정할 경우 해당 위치부터 문자열 끝까지를 추출한다. 여기서는 7번째 인덱스에서 끝까지인 "Programming"이 반환되었다.

 

▶문자열 합치기: joinToString 함수

joinToString 함수는 리스트나 배열에 있는 문자열들을 특정 구분자로 합쳐서 하나의 문자열로 반환하는 함수이다. 리스트를 하나의 문자열로 합칠 때 매우 유용하게 사용된다.

 ▷사용법

val fruits = listOf("apple", "banana", "orange")
val result = fruits.joinToString(", ")
println(result)  // 출력: apple, banana, orange
 → joinToString(", ")은 리스트의 각 요소를 쉼표와 공백으로 구분하여 하나의 문자열로 합친다.

리스트가 [apple, banana, orange]일 때, 최종 결과는 "apple, banana, orange"라는 문자열이 된다.

 

▷접두사와 접미사 추가하기

val resultWithPrefixSuffix = fruits.joinToString(", ", prefix = "[", postfix = "]")
println(resultWithPrefixSuffix)  // 출력: [apple, banana, orange]
 → prefixpostfix 옵션을 사용하여 문자열의 시작과 끝에 대괄호를 추가할 수 있다.

이렇게 하면 리스트의 모든 요소가 [apple, banana, orange]처럼 구분되어 표시된다.

 

▷커스텀 변환 함수 적용

val resultWithTransform = fruits.joinToString(", ") { it.uppercase() }
println(resultWithTransform)  // 출력: APPLE, BANANA, ORANGE
 → joinToString은 각 요소를 합치기 전에 변환할 수 있는 람다를 받을 수 있다. 위 예시에서는 각 과일 이름을 대문자로 변환한 후 합쳤다. it.uppercase()는 리스트의 각 문자열 요소를 대문자로 변환한다.

 

▶실습: 문자열 자르기와 합치기 조합하기

 ▷CSV 형식 데이터를 처리하는 코드

val csvData = "apple,banana,orange"
val fruitList = csvData.split(",")  // 쉼표로 나누기
println(fruitList)  // 출력: [apple, banana, orange]

val formattedFruits = fruitList.joinToString(" | ")  // 구분자를 |로 변경
println(formattedFruits)  // 출력: apple | banana | orange
 → "apple,banana,orange"라는 CSV 형식의 문자열을 쉼표로 나눈 후 리스트로 변환했다.

이후, joinToString을 사용하여 리스트의 요소를 |로 구분하여 다시 하나의 문자열로 합쳤다.

이처럼 데이터 처리 과정에서 split과 joinToString을 결합하여 매우 유용하게 사용할 수 있다.

'Kotlin' 카테고리의 다른 글

[TIL]20241022 단일 표현식 함수(Single-Expression Function)  (1) 2024.10.22
[TIL]20241020 Type Alias  (1) 2024.10.20
[TIL]20241019 비트연산자  (0) 2024.10.19
[TIL]20241018 const 와 val의 차이  (0) 2024.10.19
[TIL]20241017 const  (0) 2024.10.17