ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Kotlin] String ์‚ฌ์šฉ๋ฒ•
    Android/Kotlin 2021. 8. 12. 03:02
    ๋ฐ˜์‘ํ˜•
    • ์ด ๊ธ€์€ "์œค์žฌ์„ฑ์˜ Google ๊ณต์‹ ์–ธ์–ด Kotlin" ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์œผ๋กœ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

    ๋ฌธ์ž์—ด

    • Kotlin์˜ ๋ฌธ์ž์—ด์€ Java์™€ ๋™์ผํ•˜๊ฒŒ String ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    • Kotlin์€ Java์™€ ๋Œ€๋ถ€๋ถ„ ๋ฉ”์†Œ๋“œ๊ฐ€ ๋น„์Šทํ•˜๊ฒŒ ์ œ๊ณต๋˜๋ฉฐ ๋ช‡๊ฐ€์ง€ ๋ฉ”์„œ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


    Index

    • Java์—์„œ String์˜ ๊ฐ charater๋ฅผ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

    • ํ•˜์ง€๋งŒ Kotlin์€ ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด์˜ ํ˜•ํƒœ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • String์€ ๋ถˆ๋ณ€ํ˜•์˜ ๋ฐฐ์—ด๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์›์†Œ๋ฅผ ์ ‘๊ทผํ•˜๋Š” ์šฉ๋„๋กœ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉด ๋ณ€๊ฒฝํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

    fun main(){
        val str1 = "hello world"
        println(str1[0])    // h
        println(str1[2])    // l
    
        // str1[0] = 'k' error
    }

    String ๋ฉ”์†Œ๋“œ

    substring : ์ง€์ •๋œ ๋ฒ”์œ„์˜ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜

    fun main(){
        val str1 = "hello world"
        println(str1.substring(0..4))   // hello
        println(str.substring(IntRange(0,4))    // hello
    }

    compareTo : ๋ฌธ์ž์—ด ๋น„๊ตํ•˜๋Š” ํ•จ์ˆ˜, 0์ด๋ฉด ๊ฐ™์€ ๋ฌธ์ž์—ด ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ๋ฌธ์ž์—ด

    fun main(){
        val str1 = "hello"
        val str2 = "world"
        val str3 = "HELLO"
    
        if(str1.compareTo(str2) == 0){
            println("str1๊ณผ str2๋Š” ๊ฐ™์Šต๋‹ˆ๋‹ค")
        }else{
            println("str1๊ณผ str2๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค")     // ์ถœ๋ ฅ
        }
    
        if(str1.compareTo(str3,true) == 0){
            println("str1๊ณผ str3๋Š” ๊ฐ™์Šต๋‹ˆ๋‹ค")     // ์ถœ๋ ฅ
        }else{
            println("str1๊ณผ str3๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค")
        }
    
        if(str2.contentEquals(str3)){
            println("str2๊ณผ str3๋Š” ๊ฐ™์Šต๋‹ˆ๋‹ค")     
        }else{
            println("str2๊ณผ str3๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค")     // ์ถœ๋ ฅ
        }
    }

    ๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” IgnoreCase ์— ํ•ด๋‹นํ•˜๋Š” ๋ณ€์ˆ˜๋กœ ๋Œ€์†Œ๋ฌธ์ž๊นŒ์ง€ ํ™•์ธํ•  ํ•„์š”๊ฐ€ ์—†์„ ๊ฒฝ์šฐ true๋กœ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋กœ contentEquals() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. compareTo๋Š” ๋ฆฌํ„ด๋˜๋Š” ํƒ€์ž…์€ Intํ˜•์ด๊ณ , contentEquals๋Š” Boolean ์ž…๋‹ˆ๋‹ค.

    split : ๋ฌธ์ž์—ด์„ ์ง€์ •๋œ ๊ตฌ๋ถ„์ž๋กœ ์ž˜๋ผ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜

    fun main(){
        val str1 = "hello world welcome"
        println(str1.split(" "))    // [hello, world, welcome]
    }

    StringBuffer

    • Kotlin์˜ ๋ฌธ์ž์—ด์€ ๋ถˆ๋ณ€ํ˜•์ด๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ํ•ฉ์น  ๋•Œ + ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด์„œ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์— ๋Œ€์ž…์„ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

    • ์ฆ‰, String์€ ์ง€์†์ ์ธ ๋ฌธ์ž์—ด ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์— ํ•ด๋‹นํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋” ์ฐจ์ง€ํ•˜๊ฒŒ ๋˜์ง€๋งŒ, ์›๋ณธ์ด ์œ ์ง€๋œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    • ํ•˜์ง€๋งŒ, ๋ฌธ์ž์—ด์„ ์ข€ ๋” ์‰ฝ๊ฒŒ ์กฐ์ž‘ ์œ„ํ•ด์„œ๋Š” Java์˜ StringBuffer๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    • StringBuffer๋Š” ๋ฌธ์ž์—ด๋งŒ ์“ฐ๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ›จ์”ฌ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์›๋ณธ์€ ๋ณ€๊ฒฝ์ด ๋ฉ๋‹ˆ๋‹ค.

    fun main(){
        val strbuffer = StringBuffer()
        strbuffer.append(100)
        strbuffer.append("hello")
        strbuffer.append(10.0)
        println(strbuffer)  // 100hello10.0
    
        strbuffer.insert(8, "world")
        println(strbuffer)  // 100helloworld10.0
    
        strbuffer.delete(0,3)
        println(strbuffer)  // helloworld10.0
    }
    • ์ถ”๊ฐ€๋กœ ๊ถ๊ธˆํ•œ ์ ์ด๋‚˜ ์ˆ˜์ •ํ•  ๋ถ€๋ถ„ ์žˆ์œผ๋ฉด ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š”
    ๋ฐ˜์‘ํ˜•

    'Android > Kotlin' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

    [Kotlin] Map ์‚ฌ์šฉ๋ฒ•  (0) 2021.08.12
    [Kotlin] List ์‚ฌ์šฉ๋ฒ•  (0) 2021.08.12
    [Kotlin] Array ์‚ฌ์šฉ๋ฒ•  (0) 2021.08.12
    [Kotlin] Functional Programming  (0) 2021.08.11
    [Kotlin] Generic, Inner ํด๋ž˜์Šค  (0) 2021.07.07
Designed by Tistory.