Создать карту с первым и последним символом строки - PullRequest
0 голосов
/ 04 мая 2020

Я хочу создать вывод: первая буква K и n для второй буквы, но я не знаю, как отобразить этот код

fun main() {
    val text = "Kotlin".getFirstAndLast()

    val firstChar = text["first"]
    val lastChar = text["last"]

    // TODO 2
    println("First letter is $firstChar and $lastChar for second letter")

}

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

    return mapOf()
}

Ответы [ 2 ]

2 голосов
/ 04 мая 2020

Поскольку String является реализацией CharSequence , вы можете использовать first и last функции из него. И вы просто хотите, чтобы одна пара длилась, а затем вы можете использовать Pair вместо Map (просто предложение).

fun main() {
    val (firstChar, lastChar) = "Kotlin".getFirstAndLast()

    println("First letter is $firstChar and $lastChar for last letter")
}

fun String.getFirstAndLast(): Pair<Char, Char> =
    first() to last()

И если вы действительно хотите использовать карта здесь:

fun main() {
   val text = "Kotlin".getFirstAndLast()

   val firstChar = text["first"]
   val lastChar = text["last"]

   println("First letter is $firstChar and $lastChar for last letter")
}

private fun String.getFirstAndLast(): Map<String, Char> =
   mapOf("first" to first(), "last" to last())
0 голосов
/ 04 мая 2020

Просто используйте функции first() и last() из интерфейса CharSequence и постройте карту, используя mapOf, затем используйте getValue () на карте, чтобы получить соответствующие значения:

fun main() {
   val text = "Kotlin".getFirstAndLast()

   val firstChar = text.getValue(FIRST_ID)
   val lastChar = text.getValue(LAST_ID)

   // TODO 2
   println("First letter is $firstChar and $lastChar for second letter")
}

// TODO 1
private fun String.getFirstAndLast(): Map<String, Char> {
   val first = this.first()
   val last = this.last()
   return mapOf(FIRST_ID to first, LAST_ID to last)
}

// these are useful to avoid code replication
companion object{
   const val FIRST_ID = "first"
   const val LAST_ID = "last"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...