本文へスキップ
BecomeCoder

Java文法コース · 第7章 文字列と標準ライブラリ ― よく使う道具箱 · レッスン30

StringBuilder ― 文字列を効率よく組み立てる

ブラウザで完結

導入

String+文字列をどんどんつなげていくと、実は毎回新しい文字列が作られていて、繰り返しが多いと非効率になります。たくさんの文字列を組み立てるときは StringBuilder を使うのが定番です。

説明

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("Hello");
        sb.append(", ");
        sb.append("Java!");
        System.out.println(sb.toString());
        System.out.println(sb.length());

        sb.reverse();
        System.out.println(sb.toString());
    }
}
  • new StringBuilder() … 空の「組み立て中の文字列」を作ります。
  • append(...) … 末尾に文字列(や数値)を追加します。String+ と違い、同じオブジェクトの中身をどんどん書き足していくので、繰り返しの連結に向いています。
  • toString() … 組み立てた中身を、普通の String として取り出します。
  • length() … 現在の文字数。
  • reverse() … 文字列を逆順にします。

「ループの中で文字列を少しずつ足していきたい」ときは、String s = s + "..."; を繰り返すより、StringBuilderappend を使うほうが定番です。

やってみよう

下のエディタで append する内容を増やしたり、順番を変えたりしてみましょう。reverse()append の前に呼んだらどうなるかも試してみてください。

演習

StringBuilder を使って、for ループで 1 から 5 までの数字を連結し、"12345" を作って表示してください(結果は 12345)。

ヒント1を見る

StringBuilder sb = new StringBuilder(); を用意し、for (int i = 1; i <= 5; i++) { sb.append(i); }

ヒント2を見る

最後に System.out.println(sb.toString());

実際に動かしてみよう

下のエディタにJavaを書いて「実行」を押すと、学習用シミュレータが System.out.println の出力を表示します(本物のJVMではなく、教材の範囲を再現した軽量エンジンです)。クラス・継承・コレクションなども動きます。Scanner で入力を読む例は「標準入力」欄に値を入れてください。本文の例を書き換えて動かしてみましょう(Stream・ラムダ・スレッド・ファイル入出力など一部の機能は対象外です)。

Java — ブラウザ内で実行(学習用シミュレータ)

Javaの教材サブセットを動かす学習用シミュレータを読み込みます(本物のJVMではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。