kotlin(코틀린) 강좌

유용한 String 함수

Developer성현 2024. 10. 30. 12:55

이번에는 문자열을 다루면서 편리한 함수를 알아보겠습니다.

 

1. 문자열 길이 구하기

val str = "Kotlin.Program"

println(str.length)

실행 결과

length는 함수가 아닌 속성으로 단순히 문자열 길이를 알 수 있습니다.

 

2. 대소문자 변환

val str = "Kotlin.Program"

println(str.lowercase())
println(str.uppercase())

실행 결과

lowercase는 문자열을 모두 소문자로 바꿔주고

uppercase는 문자열을 모두 대문자로 바꿔줍니다.

 

3. 문자열 나누기

val str = "Kotlin.Program"

val listStr = str.split(".")
println("0번째: ${listStr[0]} 1번째: ${listStr[1]}")

실행 결과

split 함수는 특정 문자를 기준으로 나눠서 리스트를 만들어 줍니다.

split() 파라미터를 아무것도 넣지 않는다면 기본 값으로", "를 기준으로 나눠지게 됩니다.

 

4. 리스트 문자열 합치기

val str = "Kotlin.Program"

val listStr = str.split(".")
println(listStr.joinToString(" | "))

실행 결과

이 코드는 위에서 나눈 문자열을 다시 합하는 코드입니다.

문자열을 붙일때는 joinToString 함수를 사용합니다.

joinToString() 파리미터에 아무것도 넣지 않는다면 기본값으로 ", "를 사이에 넣어 붙여지게 됩니다.

 

5. 문자열 나누기2

위에서 특정 문자를 기준으로 나누었다면 이번에는 원하는 길이 만큼 자를 수 있습니다.

val str = "Kotlin.Program"

println(str.substring(5))
println(str.substring(2, 5))
println(str.substring(2..5))

실행 결과

substring() 파라미터로 정수 하나를 넣으면 해당 인덱스부터 마지막까지 반환합니다.

파라미터로 정수 2개를 넣으면 1번 정수부터 2번 정수 전까지 반환합니다.

반복문에 사용하는 것처럼 Range 객체를 사용하여 인덱스를 지정할 수도 있습니다.

 

6. 공백 여부 구하기

문자열은 다양한 공백(null, "", " ", "  ", "     "... 등)이 존재하여 이로 인한 에러가 종종 발생하지만 위 함수들은 다양한 공백을 판단할 수 있습니다.

위 6개의 함수들은 공백을 판별할 수 있는 함수들입니다. 각각 하나씩 실행코드를 작성해 보겠습니다.

fun main() {
    val str = "Kotlin.Program"

    val strCheck1: String? = null
    val strCheck2 = ""
    val strCheck3 = " "
    val strCheck4 = "   "
    val strCheck5 = "S"

    strCheck(strCheck1)
    strCheck(strCheck2)
    strCheck(strCheck3)
    strCheck(strCheck4)
    strCheck(strCheck5)

}

fun strCheck(str: String?){
    println("\"$str\"")

    if (str != null) {
        println("isEmpty : " + str.isEmpty())
        println("isBlank : " + str.isBlank())
        println("isNotEmpty : " + str.isNotEmpty())
        println("isNotBlank : " + str.isNotBlank())
    }
    println("isNullOrEmpty : " + str.isNullOrEmpty())
    println("isNullOrBlank : " + str.isNullOrBlank())

}

테스트할 문자열 변수를 5개 만들고 6개의 함수를 체크할 함수를 하나 만들어서 하나의 문자열을 한 번에 6개의 함수의 실행결과를 확인할 수 있는 코드를 작성하였습니다.

 

코드로 바로 알 수 있는 것은 

isEmpty()
isBlank()
isNotEmpty()
isNotBlank()

함수들은 null 값을 체크할 수 없다는 것입니다. 그래서 이 함수들은 if문으로 미리 null을 검서해서 아닌 값만 검사하게 하였습니다. 그럼 하나씩 살펴보겠습니다.

isEmpty() 함수는 아무것도 공백 또한 문자라고 판단을 합니다.

isBlank() 함수는 공백(스페이스, 텝, 그 외 화면에 보이지 않는 요소) 은 문자가 아니라고 판단을 합니다.

그리고

isNotEmpty()
isNotBlank()

위 함수들은 Not가 붙어있는 걸로 알 수 있듯이 반대값을 반환합니다.

isNullOrEmpty()
isNullOrBlank()

위 함수들은 null값을 동시에 체크하는 함수입니다.

 

이 함수들은 로그인 기능을 구현할 때 TextBox에 문자 입력 유무를 판단할 때 유용하게 사용할 수 있을 거 같습니다.

 

 

 

 

 

 

7. 특정 문자 존재유무 판별

fun main() {
    val str = "Kotlin.Program"

    println(str.startsWith("Kotlin"))
    println(str.startsWith("otlin"))

    println()// 개행

    println(str.endsWith("Program"))
    println(str.endsWith("Progra"))

    println()// 개행

    println(str.contains("n.P"))
    println(str.contains("nP"))
}

실행 결과

코틀린은 문자열에 특정한 문자가 있는지 판별 할 수 있는 함수를 제공하고 있습니다.

startsWith() 함수는 처음 시작하는 문자열에 파라미터로 넘긴 문자열과 동일한 문자가 있는지를 판별해 줍니다.

endsWith() 함수는 문자열 마지막 부분에 파라미터로 넘긴 문자열과 동일한 문자가 있는지를 판별해 줍니다.

contains() 함수는 문자열 내 어딘가에 파라미터로 넘긴 문자가 존재하는지를 판별해 주는 함수입니다.