remove Surrounding
Начиная с Kotlin: 1.0
fun CharSequence.removeSurrounding(prefix: CharSequence, suffix: CharSequence): CharSequence
Если эта последовательность символов начинается с заданного префикса и заканчивается заданным суффиксом, возвращает новую последовательность символов без заданных префикса и суффикса. В противном случае возвращает новую последовательность символов с теми же символами.
Примеры
import kotlin.test.*
fun main() {
//sampleStart
val textCharSequence: CharSequence = StringBuilder("[content]")
println(textCharSequence.removeSurrounding("[", "]")) // content
// Does not start with prefix
println(StringBuilder("content]").removeSurrounding("[", "]")) // content]
// Does not end with suffix
println(StringBuilder("[content").removeSurrounding("[", "]")) // [content
// Does not start or end with prefix/suffix
println(StringBuilder("content").removeSurrounding("[", "]")) // content
// Empty content
println(StringBuilder("[]").removeSurrounding("[", "]")) //
// Different delimiters
println(StringBuilder("<content>").removeSurrounding("[", "]")) // <content>
//sampleEnd
}
fun String.removeSurrounding(prefix: CharSequence, suffix: CharSequence): String
Удаляет из строки заданные префикс и суффикс, только если она начинается с этого префикса и заканчивается этим суффиксом. В противном случае возвращает эту строку без изменений.
Примеры
import kotlin.test.*
fun main() {
//sampleStart
val textString = "[content]"
println(textString.removeSurrounding("[", "]")) // content
// Does not start with prefix
println("content]".removeSurrounding("[", "]")) // content]
// Does not end with suffix
println("[content".removeSurrounding("[", "]")) // [content
// Does not start or end with prefix/suffix
println("content".removeSurrounding("[", "]")) // content
// Empty content
println("[]".removeSurrounding("[", "]")) //
// Different delimiters
println("<content>".removeSurrounding("[", "]")) // <content>
//sampleEnd
}
fun CharSequence.removeSurrounding(delimiter: CharSequence): CharSequence
Если эта последовательность символов начинается и заканчивается заданным разделителем, возвращает новую последовательность символов, удалив этот разделитель в начале и в конце. В противном случае возвращает новую последовательность символов с теми же символами.
Примеры
import kotlin.test.*
fun main() {
//sampleStart
val textCharSequence: CharSequence = StringBuilder("***content***")
println(textCharSequence.removeSurrounding("***")) // content
// Does not end with delimiter
println(StringBuilder("##content").removeSurrounding("##")) // ##content
// Does not start with delimiter
println(StringBuilder("content##").removeSurrounding("##")) // content##
// No delimiters
println(StringBuilder("content").removeSurrounding("##")) // content
// Empty content
println(StringBuilder("****").removeSurrounding("**")) //
// Delimiter is single char, removes only one pair
println(StringBuilder("!!!content!!!").removeSurrounding("!")) // !!content!!
//sampleEnd
}
fun String.removeSurrounding(delimiter: CharSequence): String
Удаляет заданную строку-разделитель в начале и в конце этой строки, только если она начинается и заканчивается этим разделителем. В противном случае возвращает эту строку без изменений.
Примеры
import kotlin.test.*
fun main() {
//sampleStart
val textString = "***content***"
println(textString.removeSurrounding("***")) // content
// Does not end with delimiter
println("##content".removeSurrounding("##")) // ##content
// Does not start with delimiter
println("content##".removeSurrounding("##")) // content##
// No delimiters
println("content".removeSurrounding("##")) // content
// Empty content
println("****".removeSurrounding("**")) //
// Delimiter is single char, removes only one pair
println("!!!content!!!".removeSurrounding("!")) // !!content!!
//sampleEnd
}
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.text/remove-surrounding.html