如何编写函数以获取字符串的第一个和最后一个字符?

时间:2020-06-15 04:38:34

标签: string function kotlin char

我正在尝试调用一个函数以获取字符串的第一个和最后一个字母并将其转换为Char

fun main() {
    val kotlin = "Kotlin".getFirstAndLast()
    val dicoding = "Dicoding".getFirstAndLast()

    val kotlinFirstChar = kotlin["first"]
    val kotlinLastChar = kotlin["last"]

    val dicodingFirstChar = dicoding["first"]
    val dicodingLastChar = dicoding["last"]

    println("First char Kotlin is $kotlinFirstChar and $kotlinLastChar for second letter")
    println("First char Dicoding is $dicodingFirstChar and $dicodingLastChar for second letter")

}

我需要将String更改为Char,它必须是char。我该怎么办?

fun String.getFirstAndLast(): Map<String, Char>{

    return mapOf<String,Char>(

            "first" to "${this[0]}",
            "last" to "${this[this.length-1]}"
    )
}

2 个答案:

答案 0 :(得分:1)

您可以按以下方式重写该函数。

fun String.getFirstAndLast() = mapOf("first" to this.first(), "last" to this.last())

答案 1 :(得分:1)

您可以这样做:

fun main() {
    fun String.getFirstAndLast() = first() to last()

    val (kotlinFirstChar, kotlinLastChar) = "Kotlin".getFirstAndLast()
    val (dicodingFirstChar, dicodingLastChar) = "Dicoding".getFirstAndLast()

    println("First char Kotlin is $kotlinFirstChar and $kotlinLastChar for last letter")
    println("First char Dicoding is $dicodingFirstChar and $dicodingLastChar for last letter")
}
  • first()为您提供字符串的第一个Char
  • last()为您提供字符串的最后Char
  • first() to last()创建第一个和最后一个字符的Pair<Char, Char>
  • val (foo, bar) = pair使用destructuring从该对中提取值。

结果:

First char Kotlin is K and n for last letter
First char Dicoding is D and g for last letter