導入
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 + "..."; を繰り返すより、StringBuilder の append を使うほうが定番です。
やってみよう
下のエディタで 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());。