Java | 文字列を指定した回数繰り返した新しい文字列を取得(repeat メソッド)

JavaScript JavaScript
スポンサーリンク

JavaScript の repeat メソッド

「同じ文字を何回も並べたい…でもループはまだ難しい」そんなときの近道が repeat()。文字列を好きな回数だけつなげて、新しい文字列を作るメソッドです。


使い方の基本

文字列.repeat(回数)
JavaScript
  • 役割: 指定した回数、文字列を繰り返した新しい文字列を返す
  • 元の文字列: 変わらない(破壊しない)
  • 戻り値: 新しく作られた文字列

よく使うパターンと動き

  • 正の整数を渡す: その回数だけ繰り返す
"Hi".repeat(3); // "HiHiHi"
JavaScript
  • 0 を渡す: 空文字列(何もない文字列)になる
"Hi".repeat(0); // ""
JavaScript
  • 負の数や小数を渡す: エラーまたは切り捨ての対象
    • 負の数: RangeError(不正な回数)小数: 自動で小数点以下が切り捨てられる
"Hi".repeat(-1); // RangeError
"Hi".repeat(2.9); // "HiHi"(2に切り捨て)
JavaScript
  • とても大きい数: メモリを大量に使うので注意(ブラウザが固まることも)

例題で身につける

区切り線を作る(コンソールやログで便利)

const line = "-".repeat(30);
console.log(line);
// ------------------------------
JavaScript
  • ポイント: 見やすい「線」を即席で作れる

表の見出しを整える(簡易レイアウト)

const title = "商品一覧";
console.log(title);
console.log("=".repeat(title.length));
// 商品一覧
// ========
JavaScript
  • ポイント: 文字数に合わせて線の長さを揃えられる

パスワードの伏字表示(UIの練習)

const input = "MySecret";
const masked = "•".repeat(input.length);
console.log(masked);
// ••••••••
JavaScript
  • ポイント: 文字数をそのまま伏字の数にできる

簡単な進捗バー(学習の達成感を可視化)

function progressBar(percent) {
  const total = 20; // バーの長さ
  const filled = Math.round((percent / 100) * total);
  return "[" + "#".repeat(filled) + "-".repeat(total - filled) + "] " + percent + "%";
}

console.log(progressBar(0));    // [--------------------] 0%
console.log(progressBar(35));   // [#######-------------] 35%
console.log(progressBar(100));  // [####################] 100%
JavaScript
  • ポイント: 文字を足したり引いたりするだけで視覚的に進捗がわかる

連番やラベルの見やすい整形(ミニ課題)

const items = ["Apple", "Banana", "Cherry"];
items.forEach((name, i) => {
  const idx = (i + 1).toString();
  const dots = ".".repeat(12 - idx.length - name.length);
  console.log(idx + ". " + name + dots + "OK");
});
// 1. Apple.....OK
// 2. Banana....OK
// 3. Cherry....OK
JavaScript
  • ポイント: repeat()で「揃える」感覚がつく

つまずきやすいポイント

  • 引数は数値だけ: 文字列の「数字」でも、内部で数値に変換されますが、変換できないとエラーになります
"A".repeat("3"); // "AAA"(3に変換される)
"A".repeat("three"); // RangeError
JavaScript
  • 空文字列に注意: 元が空文字なら何回繰り返しても空
"".repeat(5); // ""
JavaScript
  • メモリに注意: 何百万回など極端な回数は避ける

練習問題

  • 問題1: 「*」を使って幅 40 の線を表示してください。
// ここに書く
JavaScript
  • 問題2: 入力されたユーザー名の長さに合わせて「=」で下線を引いてください。
const username = "Kento";
// 出力例:
// Kento
// =====
JavaScript
  • 問題3: 進捗バー関数を改造して、完了時は「Done!」と表示してください。
// 例:
// [####################] 100% Done!
JavaScript
  • 問題4: 与えられた配列の各要素を、右側が「#」で同じ幅になるように埋めてください(幅 15)。
const words = ["dog", "elephant", "cat"];
// 例:
// dog###########
// elephant######
// cat###########
JavaScript

まとめのひとこと

repeat は「足すより、並べる」。ループを覚える前でも、文字を“並べる力”で画面を整えたり、見やすさを作れます。まずは「線」「伏字」「進捗バー」の3つを作れるようにしてみましょう。

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