どうも、ちょげ(@chogetarou)です。
Map(マップ)の要素を結合して文字列に変換する方法を紹介します。
方法

Map(マップ)の要素を結合して文字列に変換する方法は、3つあります。
キーと値のペア
1つ目は、キーと値のペアを結合する方法です。
まず、map.entries
のように、Mapのentriesプロパティにアクセスします。
entriesプロパティからjoinToString()を呼び出します。
そして、joinToString()の引数「separator」に区切り文字を指定します。
val result = map.entries.joinToString(separator="区切り文字")
上記のjoinToString()は、Mapのキーと値のペアを結合した1つの文字列を返します。
また、文字列内では、1つの1つのペアが区切り文字ごとに区切られます。
使用例
fun main() {
val numbers = mapOf(
"one" to 1,
"two" to 2,
"three" to 3,
"four" to 4,
"five" to 5,
)
val result = numbers.entries.joinToString(separator=" / ")
val result2 = numbers.entries.joinToString()
println(result)
println(result2)
}
出力:
one=1 / two=2 / three=3 / four=4 / five=5
one=1, two=2, three=3, four=4, five=5
キー
2つ目は、キーを結合する方法です。
まず、map.keys
のように、Mapのkeysにアクセスします。
keysからjoinToString()を呼び出します。
そして、joinToString()の引数「separator」に区切り文字を指定します。
val result = map.keys.joinToString(separator="区切り文字")
上記のjoinToString()は、Mapのキーを結合した1つの文字列を返します。
また、文字列内では、1つの1つのキーが区切り文字ごとに区切られます。
使用例
fun main() {
val numbers = mapOf(
"one" to 1,
"two" to 2,
"three" to 3,
"four" to 4,
"five" to 5
)
val result = numbers.keys.joinToString()
val result2 = numbers.keys.joinToString(separator="/")
println(result)
println(result2)
}
出力:
one, two, three, four, five
one/two/three/four/five
値
3つ目は、値を結合する方法です。
まず、map.values
のように、Mapのvaluesにアクセスします。
valuesからjoinToString()を呼び出します。
そして、joinToString()の引数「separator」に区切り文字を指定します。
val result = map.values.joinToString(separator="区切り文字")
上記のjoinToString()は、Mapの値を結合した1つの文字列を返します。
また、文字列内では、1つの1つの値が区切り文字ごとに区切られます。
もし、Mapの値を重複なしで結合したい場合は、joinToString()の前にdistinct()を呼び出します。
val result = map.values.distinct().joinToString(separator="区切り文字")
使用例1
fun main() {
val numbers = mapOf(
"one" to 1,
"two" to 2,
"three" to 3,
"four" to 4,
"five" to 5
)
val result = numbers.values.joinToString(separator="+")
val result2 = numbers.values.joinToString()
println(result)
println(result2)
}
出力:
1+2+3+4+5
1, 2, 3, 4, 5
使用例2
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
まとめ
Map(マップ)を結合して文字列に変換する方法は、次の3つです。
- キーと値のペアを結合する方法
val result = map.entries.joinToString(separator="区切り文字")
- キーを結合する方法
val result = map.keys.joinToString(separator="区切り文字")
- 値を結合する方法
val result = map.values.joinToString(separator=”区切り文字”)
コメント