文字列の追加(Java)

(ブログ記事の一覧は「こちら」)

(今回は、Javaのみの内容になります)

前回は、文字列を分割することについて学びました。今回は、その逆で、文字列を追加(連結)する方法について確認していきます。

Stringクラスを使って文字列を連結する場合、+演算子を使用します。

String str = "あいう" + "えお" + "かきく" + "けこ";

特に問題の無いように見えますが、実はJavaプログラミングとしては適切な書き方とは言えません。
実は、+演算子で文字列を連結するたびに、新たにStringクラスを生成する、という処理を行っています。その結果、メモリの使用量が増えることで負荷が大きくなり、処理が遅くなってしまうことになります。
(上記の例くらいであれば、影響はほとんどありませんが^^;)

これらの問題を解決するための方法として、StringBuilderクラスというものを使用します。(似た内容でStringBufferクラスというものもありますが、今回は説明は行いません)


以下は、StringBuilderクラスを使用した、文字列を追加(連結)する方法のサンプルです。

Javaでの記述例

package com.test;

public class TestApp {

    public static void main(String[] args) {

        // 配列
        String[] arFruit = {"りんご", "みかん", "メロン", "バナナ"};

        // 文字列の連結
        StringBuilder sbFruit = new StringBuilder();
        
        sbFruit.append(arFruit[0]);
        sbFruit.append(arFruit[1]);
        sbFruit.append(arFruit[2]);
        sbFruit.append(arFruit[3]);

        System.out.println(sbFruit.toString());
    }

}
出力結果
りんごみかんメロンバナナ

課題

以下のカンマ区切りの文字列に対して、カンマを取り除いた文字列に変換して、その結果を出力してください。

String str = "りんご,みかん,メロン,バナナ";

(方法の1つとして、(前回学んだ)文字列の分割と、文字列の追加を行うことで実現できます。)

package com.test;

public class TestApp {

    public static void main(String[] args) {

        String str = "りんご,みかん,メロン,バナナ";
        
        // TODO: 文字列の分割

        // TODO: 文字列の追加

        // 分割、追加した文字列を出力
        System.out.println(sbFruit.toString());
    }

}
出力結果
りんごみかんメロンバナナ