Kotlinのrepeatメソッドの使い方を完全解説!初心者でもわかる文字列の繰り返し処理
生徒
「Kotlinで同じ文字を何回も繰り返して表示したいときってどうすればいいんですか?」
先生
「その場合はrepeatというメソッドを使うと、とても簡単に実現できますよ。」
生徒
「repeatって、どういう意味なんですか?」
先生
「repeatは英語で『繰り返す』という意味です。そのままの名前なので覚えやすいですね。では詳しく説明していきましょう。」
1. Kotlinのrepeatとは?
Kotlin(ことりん)で文字列を何度も繰り返したいときに使うのが、repeat()というメソッドです。
このrepeatメソッドは、指定した回数だけ文字列を連続して繰り返すことができます。
たとえば、「abc」という文字列を3回繰り返すと、「abcabcabc」という文字列が作られます。
日常の例えで言えば、「スタンプカードに同じマークを何個も並べたいとき」に似ています。
2. repeatの基本的な使い方
まずは、Kotlinでのrepeatメソッドの基本的な使い方を見てみましょう。
fun main() {
val text = "abc"
val result = text.repeat(3)
println(result)
}
abcabcabc
repeat(3)の「3」は、繰り返す回数を意味しています。この例では、「abc」が3回繰り返されて、「abcabcabc」になります。
繰り返す回数を変更すれば、好きな回数分だけ文字列をつなげることができます。
3. 数字や記号を繰り返すこともできる?
repeat()は、英字だけでなく、数字や記号、絵文字など、どんな文字列でも繰り返すことができます。
fun main() {
val star = "★"
val result = star.repeat(5)
println(result)
}
★★★★★
このように、見た目にも楽しい使い方ができます。メッセージやデザインを作るときにも活用できます。
4. Kotlinのrepeatは非破壊的
少し難しい言葉ですが、「非破壊的(ひはかいてき)」というのは、もとのデータを壊さないという意味です。
repeat()は、元の文字列を変更せず、新しく繰り返した文字列を作ってくれます。
fun main() {
val original = "Hi!"
val repeated = original.repeat(2)
println("元の文字列: $original")
println("繰り返し後: $repeated")
}
元の文字列: Hi!
繰り返し後: Hi!Hi!
このように、repeat()を使っても、originalはそのまま残ります。
5. ユーザー入力とrepeatを組み合わせる
ユーザーが入力した文字を好きな回数だけ繰り返したいときにも、repeatは便利です。
ここでは、変数で繰り返す文字と回数を指定する例を見てみましょう。
fun main() {
val word = "わーい!"
val times = 4
println(word.repeat(times))
}
わーい!わーい!わーい!わーい!
このように、回数も変数で扱えるので、柔軟な使い方が可能です。
6. 空文字を繰り返すとどうなる?
もし空文字(からもじれつ)を繰り返したらどうなるでしょうか?
空文字とは、何も文字が入っていない状態のことです。
fun main() {
val empty = ""
val result = empty.repeat(5)
println("[" + result + "]")
}
[]
この場合、空文字を5回繰り返しても、結果はやはり空のままです。
7. 繰り返し回数が0のときは?
繰り返し回数に0を指定した場合も、結果は空文字になります。
これは、何も繰り返さなかったのと同じ意味になります。
fun main() {
val text = "Hello"
val result = text.repeat(0)
println("[" + result + "]")
}
[]
このように、繰り返し回数が0でもエラーにはならず、安全に処理されます。
8. repeatは整数(Int)だけ指定できる
repeat()では、繰り返す回数として小数やマイナスは指定できません。
整数(せいすう)だけを使うようにしましょう。負の値を入れるとエラーになります。
fun main() {
val text = "Test"
// val result = text.repeat(-1) ← エラーになります
}
正の整数(たとえば1や3など)を使って、繰り返し処理を行うのが正しい使い方です。
9. 文字列を整形するのにも便利!
repeat()は、デザインやレイアウトを整える場面でも役に立ちます。
たとえば、区切り線やタイトルの下線などを作るときに便利です。
fun main() {
val title = "メニュー"
val line = "-".repeat(title.length)
println(title)
println(line)
}
メニュー
----
このように、文字の長さに合わせて線を引くことができます。