[Kotlin]Map(マップ)の値を重複なしで結合して文字列に変換するには?

Kotlin

どうも、ちょげ(@chogetarou)です。

Map(マップ)の値(value)を重複なしで結合して1つの文字列に変換する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

Map(マップ)の値(value)を重複なしで結合して1つの文字列に変換するには、distinct()とjoinToString()を使います。

まず、map.valuesのように、Mapのvaluesにアクセスします。

valuesからdistinct()を呼び出します。

そして、distinct()からjoinToString()を呼び出します。

joinToString()の引数「separator」に区切り文字を指定します。

val result = map.values.distinct().joinToString(separator="区切り文字")

上記のjoinToString()は、Mapの値を重複なしで結合した1つの文字列を返します。

また、文字列内では、1つの1つの値が区切り文字ごとに区切られます。

joinToString()は、引数なしで呼び出せます。

引数を使わない場合は、デフォルトでカンマ( , )が区切り文字になります。

使用例

fun main() {
    val numbers = mapOf(
        "one" to 1,
        "two" to 2,
        "いち" to 1,
        "three" to 3,
        "four" to 4,
        "five" to 5,
        "一" to 1
    )
    
    val result = numbers.values.distinct().joinToString(separator=" / ")
    
    println(result)
}
出力:
1 / 2 / 3 / 4 / 5

コメント

タイトルとURLをコピーしました