엔지니어 규의 IT 프로그래밍 다이어리

[Kotlin] 20. 문자열 다루는 방법 본문

프로그래밍 언어/코틀린

[Kotlin] 20. 문자열 다루는 방법

엔지니어 규 2022. 5. 29. 12:22
728x90

우리는 코틀린에서는  'String' 이라는 클래스로 문자열을 다루며, 쌍따옴표 사이에 문자열을 넣어 literal 을 만들면

 

새 String 객체가 생성되는것을 확인하였다. 

 

코틀린에서는 이 String 클래스와 관련된 여러 속성과 함수가 있는데 

 

그중 자주 쓰이는 것들을 아래 소스코드로 알아보자.

fun main(){
    
    val test1 = "Test.Kotlin.String"
    println(test1.length)  //18
    println(test1.toLowerCase())  // test.kotlin.string
    println(test1.toUpperCase())  //  TEST.KOTLIN.STRING

    val test2 = test1.split(".")
    println(test2) //  [Test, Kotlin, String]
    println(test2.joinToString()) //Test, Kotlin, String
    println(test2.joinToString("-")) //Test-Kotlin-String
    println(test1.substring(5..10)) // Kotlin  -> 5~10 번째 문자열만 출력
    
}

 

length : 문자열의 길이를 반환해준다.  public override val length 로 코딩되어 있어서 함수가 아니라 val 로 반환이 된다. 

toLoserCase() : 문자열을 소문자로 변환한다.

toUpperCase() : 문자열을 대문자로 변환한다.

split(".") :  괄호안의 문자열로 나눠준다.

joinToString() : 문자열을 합쳐준다.

joinToString("-") : 괄호안의 문자열을 중간에 넣어서 합친다.

substring(5..10) : 괄호안의 숫자에 해당되는 문자열만 출력한다.

 

 

 

다음은 문자열이 비어있는지 여부를 판단하여 boolean값으로 반환받는 함수를 알아보자.

fun main(){

    val nullstring: String? = null
    val emptyString = ""
    val blankString = " "
    val normalString = "A"

    println(nullstring.isNullOrEmpty())  //true
    println(emptyString.isNullOrEmpty())  //true
    println(blankString.isNullOrEmpty()) //false
    println(normalString.isNullOrEmpty()) //false

    println()

    println(nullstring.isNullOrBlank()) //true
    println(emptyString.isNullOrBlank()) //true
    println(blankString.isNullOrBlank())  //true
    println(normalString.isNullOrBlank()) //false

}

 두함수의 차이는  isNullOrEmpty() 는 아무것도 없는 문자열, Empty 상태만 비어있는것으로 보고

isNullOrBlank는 문자열은 있지만 공백문자로만 이루어진 blank 상태도 비어있는 것으로 본다.

 

공백문자에는 space, tab, line feed, carrige return 등 눈에 직접적으로 보이지 않는 문자들을 포함한다.

 

 

 

조금더 특수한 함수에 대해 알아보도록 하자.

fun main(){


    var test3 = "kotlin.kt"
    var test4 = "java.java"

    println(test3.startsWith("java")) // false
    println(test4.startsWith("java")) // true


    println(test3.endsWith("kt")) // true
    println(test4.endsWith("kt")) // false


    println(test3.contains("lin")) // true
    println(test4.contains("lin")) //  false

}

 

startsWith() 함수는 시작하는 문자열이 일치하면 true, 아니면 false를 반환하고

endsWith() 함수는 끝나는 문자열이 일치하면 true, 아니면 false 를 반환하고

contains() 함수는 특정 문자열을 포함하면 true, 아니면 false 를 반환한다.

 

문자열을 다루는 방법은 입력값을 받거나 문자열로 된 자료를 처리 할 때 매우 자주 사용되는 기능이다.

728x90
Comments