본문 바로가기
코틀린/[Mapping] 매핑 작업

[Kotlin][String] replace

by jinwo_o 2024. 8. 27.

모든 oldChar 가 newChar 로 대체된 새 문자열을 반환합니다.

public actual fun String.replace(oldValue: String, newValue: String, ignoreCase: Boolean = false): String {
    run {
        var occurrenceIndex: Int = indexOf(oldValue, 0, ignoreCase)
        // FAST PATH: no match
        if (occurrenceIndex < 0) return this

        val oldValueLength = oldValue.length
        val searchStep = oldValueLength.coerceAtLeast(1)
        val newLengthHint = length - oldValueLength + newValue.length
        if (newLengthHint < 0) throw OutOfMemoryError()
        val stringBuilder = StringBuilder(newLengthHint)

        var i = 0
        do {
            stringBuilder.append(this, i, occurrenceIndex).append(newValue)
            i = occurrenceIndex + oldValueLength
            if (occurrenceIndex >= length) break
            occurrenceIndex = indexOf(oldValue, occurrenceIndex + searchStep, ignoreCase)
        } while (occurrenceIndex > 0)
        return stringBuilder.append(this, i, length).toString()
    }
}


val inputString0 = "Mississippi"
val inputString1 = "Insufficient data for meaningful answer."

println(inputString0.replace('s', 'z')) // Mizzizzippi
println(inputString1.replace("data", "information")) // Insufficient information for meaningful answer.

 

replace - Kotlin Programming Language

 

kotlinlang.org

'코틀린 > [Mapping] 매핑 작업' 카테고리의 다른 글

[Kotlin][String] replaceRange  (0) 2024.08.27
[Kotlin][Collection] zip  (0) 2024.08.22
[Kotlin][Collection] flatMap  (0) 2024.08.06