상세 컨텐츠

본문 제목

[Kotlin] 문자열

Programming language/Kotlin

by choiDev 2020. 12. 5. 18:35

본문

문자열에 대한 다양한 사용법에 대해 알아보자

 

substring 함수, indexOf 함수

  - substring은 자를 문자열의 위치(index)만 알고있다면,
    (해당 인덱스서 부터 끝까지 || 해당 인덱스서 부터 원하는 인덱스까지) 문자열을 잘라 반환할수 있다.

//이름만 추출하기
fun main(args: Array<String>) {
    val msg:String = "Hello. My name is Choi."
    val startIndex:Int = msg.indexOf('C')
    val name:String = msg.substring(startIndex) //startIndex 부터 마지막까지 자른 문자열을 반환해라
    val frontMsg:String = msg.substring(0 until startIndex) //0부터 startIndex 이전까지 자른 문자열을 반환해라

    print(frontMsg)
    println(name)
}

 

split 함수

  - 구분자(delimiter)를 받아 구분자에 맡게 문자열을 리스트 형태로 반환합니다.

//구분자에 맞춰 문자열 분리하기
fun main(args: Array<String>) {
    val menuString: String = "Hamburger, Cola, Cider, Pasta"
    val menuList: List<String> = menuString.split(", ")

    for (menu in menuList) println(menu)
}

  - split 함수는 List를 반환하므로 해체 선언(destructuring declaration)이라는 간단한 문법도 지원한다. 

//split 해체선언 예제
fun main(args: Array<String>) {
    val menuString: String = "Hamburger, Cola, Cider, Pasta"
    val (foodBurger, drinkCola, drinkCider, foodPasta) = menuString.split(", ")

    println(foodBurger)
    println(drinkCola)
    println(drinkCider)
    println(foodPasta)
}

 

replace 함수

  - 특정 문자를, 지정한 문자로 변경 가능하게 하는 함수입니다.

fun main(args: Array<String>) {
    var msg:String = "hello world"
    msg = msg.replace(Regex("[eld]")){	//eld에 해당하는 문자들은 변경합니다.
        when(it.value){
            "e" -> "E"
            "l" -> "L"
            "d" -> "D"
            else -> it.value
        }
    }

    println(msg)
}

 

문자열 비교

  - 문자와 문자의 값이 동일한지 비교하는 예제 입니다.

  - 문자열 값에 대한 비교 연산자는 "=="이며 객체에 대한 참조 비교 연산자는 "==="을 사용한다.

fun main(args: Array<String>) {
    var userName:String = "Choi"

    if(userName == "Choi") println("유저의 이름이 Choi입니다.")
    else println("유저의 이름이 Choi가 아닙니다.")
}

 

유니코드

  - Char는 유니코드 문자이다

  - 알파벳, 아이콘, 이모지, 상형 문자 등을 표기할때 사용한다. 

  - 아래 코드는 두 변수 모두 A를 출력한다.

fun main(args: Array<String>) {
    var capitalA:Char ='A'
    val unicodeA:Char = '\u0041'

    println(capitalA)
    println(unicodeA)
}

 

문자열 하나씩 처리하기

  - forEach는 문자열을 하나씩 처리할 수 있도록 하며 forEach문은 List에서도 사용된다.

fun main(args: Array<String>) {
    val msg:String = "hello kotlin"
    msg.forEach { 
        println("$it")
    }
}

 

문자열 -> 숫자로 변환

fun main(args: Array<String>) {
    val price:String = "4000"
    var addPrice:Int = 300
    addPrice += price.toInt()
    println(addPrice)
}

 

관련글 더보기