모든 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.
'코틀린 > [Mapping] 매핑 작업' 카테고리의 다른 글
[Kotlin][String] replaceRange (0) | 2024.08.27 |
---|---|
[Kotlin][Collection] zip (0) | 2024.08.22 |
[Kotlin][Collection] flatMap (0) | 2024.08.06 |