trimMargin

fun String.trimMargin(marginPrefix: String = "|"): String

Trims leading whitespace characters followed by marginPrefix from every line of a source string and removes the first and the last lines if they are blank (notice difference blank vs empty).

Doesn't affect a line if it doesn't contain marginPrefix except the first and the last blank lines.

Doesn't preserve the original line endings.

Samples

import samples.*
import java.util.Locale
import kotlin.test.*
fun main() { 
   //sampleStart 
   val withoutMargin1 = """ABC
123
456""".trimMargin()
assertPrints(withoutMargin1, "ABC\n123\n456")

val withoutMargin2 = """
    #XYZ
    #foo
    #bar
""".trimMargin("#")
assertPrints(withoutMargin2, "XYZ\nfoo\nbar") 
   //sampleEnd
}

See also

Parameters

marginPrefix

non-blank string, which is used as a margin delimiter. Default is | (pipe character).