KotlinのtoList・toCharArrayの使い方を徹底解説!文字列をリストに変換する方法を初心者向けにやさしく説明
生徒
「Kotlinで、文字列の1文字ずつをバラバラにして扱いたいときって、どうするんですか?」
先生
「KotlinではtoList()やtoCharArray()というメソッドを使うことで、文字列を1文字ずつに分けてリストや配列に変換できますよ。」
生徒
「リストってなんですか?配列との違いも教えてください!」
先生
「もちろんです。では、リストや配列の違いも含めて、使い方をやさしく説明していきますね!」
1. 文字列をリストに変換するとは?
文字列(String)は、1文字ずつの集まりです。たとえば"Kotlin"という文字列は、'K'、'o'、't'、'l'、'i'、'n'という6つの文字でできています。
この文字たちを「1文字ずつ取り出してバラバラにして使いたい」と思うことがあります。そんなときに使うのが、toList()やtoCharArray()です。
2. toList()の使い方 ― 文字列をリストに変換
toList()は、文字列を1文字ずつに分解してリストという形に変換します。リストとは、「順番がある複数の値」をひとまとめにしたものです。
たとえば次のように使います:
fun main() {
val text = "Kotlin"
val list = text.toList()
println(list)
}
実行結果:
[K, o, t, l, i, n]
このように、文字列"Kotlin"が、1文字ずつのリストになっています。
3. toCharArray()の使い方 ― 配列に変換する方法
toCharArray()は、文字列を文字の配列に変換するメソッドです。配列(はいれつ)とは、決まった数のデータを並べて格納する箱のようなものです。
fun main() {
val text = "Hello"
val array = text.toCharArray()
println(array.joinToString())
}
実行結果:
H, e, l, l, o
joinToString()を使うことで、配列の中身をカンマで区切って表示しています。
4. リストと配列のちがいって何?
リスト(List)と配列(Array)はどちらも複数のデータを扱うための仕組みですが、細かい違いがあります。
- リスト(List):柔軟に使える。要素の追加・削除もできる。
- 配列(Array):決まった数で使いたいときに便利。動作が少し速い。
初心者のうちはtoList()で文字列を分ける方法が扱いやすいでしょう。
5. for文で1文字ずつ処理したいときに便利
toList()やtoCharArray()を使えば、文字列の1文字ずつに対して処理をすることができます。
fun main() {
val name = "Kotlin"
for (c in name.toList()) {
println("1文字ずつ出力: $c")
}
}
実行結果:
1文字ずつ出力: K
1文字ずつ出力: o
1文字ずつ出力: t
1文字ずつ出力: l
1文字ずつ出力: i
1文字ずつ出力: n
このように、文字列を1文字ずつ取り出して、順番に処理することができます。
6. 特定の文字を取り出したいときにも使える
リストや配列に変換した文字は、「インデックス番号(じゅんばんの数字)」でアクセスできます。
fun main() {
val word = "Kotlin"
val list = word.toList()
println("3番目の文字は: ${list[2]}")
}
実行結果:
3番目の文字は: t
文字の順番は0から始まるので、list[2]は3番目の文字を意味します。
7. 文字列操作での活用シーン
Kotlinで文字列をリストや配列に変換すると、さまざまな便利なことができます。
- 1文字ずつ確認して処理したいとき
- 特定の文字だけ取り出したいとき
- 文字の並びを逆にしたいとき(リバース)
- 文字列をシャッフルしたいとき
たとえば次のように、リストにしてから逆順に並び替えることもできます。
fun main() {
val text = "abcde"
val reversed = text.toList().reversed().joinToString("")
println(reversed)
}
実行結果:
edcba
reversed()で逆順にして、joinToString("")で再び文字列にしています。