문제

Learn about the different string literals and string templates in Kotlin.

You can use the handy library functions trimIndent and trimMargin to format multiline triple-quoted strings in accordance with the surrounding code.

Replace the trimIndent call with the trimMargin call taking # as the prefix value so that the resulting string doesn't contain the prefix character.

const val question = "life, the universe, and everything"
const val answer = 42

val tripleQuotedString = """
    #question = "$question"
    #answer = $answer""".trimIndent()

fun main() {
    println(tripleQuotedString)
}

const val question = "life, the universe, and everything"
const val answer = 42

val tripleQuotedString = """
    #question = "$question"
    #answer = $answer""".trimMargin("#")

fun main() {
    println(tripleQuotedString)
}

풀이

trimIndent를 trimMargin으로 변경하여 결과 문자열에 접두사 문자가 포함되지 않도록 변경하는 문제이다.

trimIndent와 trimMargin은 문자열 공백을 제거하는 데 사용하는 함수이다.

아래는 문자열 공백 제거하는 함수에 대한 설명이다.

문자열 공백 제거 : trim, trimIndent, trimMargin

trimIndent

  • 모든 입력 라인의 공통 최소 들여쓰기 감지하고 제거
  • 비어있는 첫번째, 마지막 라인 제거

trimMargin

  • 여백이 기준이 되는 문자열을 지정가능하며 특정 문자 기준으로 공백 제거가 가능하다
  • 기본 값 : |
  • 괄호 안에 값을 넣어주면 넣어준 값을 이용할 수 있음
  • 지정한 문자까지 삭제

문제에서 #을 접두사 값으로 사용하는 TrimMargin 호출로 바꾸라고 하였기 때문에

trimIndent를 trimMargin으로 변경해주고 괄호 안에 “#”을 넣어주면 된다.

profile
개발하는 다람쥐

0개의 댓글