今回も問題を解いていきましょう。
問題
次のプログラムを実行した場合の出力はどれでしょうか?正しい選択肢を選んでください。
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Java");
sb.append("Silver");
sb.insert(4, " ");
sb.reverse();
System.out.println(sb.toString());
}
}
選択肢
- A. Java Silver
- B. Silver Java
- C. revliS avaJ
- D. avaJ revliS
答えと解説
回答を見る
答え
C. revliS avaJ
解説
基本説明:
StringBuilderクラスは、可変の文字列を扱うためのクラスです。プログラムの中ではappend()、insert()、reverse()といった メソッドを使用して文字列を操作しています。
まず、StringBuilderを使って”Java”という文字列が作られ、それに”Silver”という文字列が追加されます。
次に、insertメソッドを使いインデックス4の位置に空白を挿入しています。そして、reverseメソッドを使って文字列全体を 逆順にしています。
誤答理由:
選択肢AやBでは単純に文字列を連結または空白を加えるだけの処理です。選択肢Dは正しい順序で反転されていない場合の出力です。
reverseメソッドが使われているため、最終的に文字がすべて逆順に並んでいることを理解できていないと、AやBを選んでしまう かもしれません。
つまずきポイント:
初心者が誤りやすいポイントとして、StringBuilderにおいてはメソッドチェーン(連続したメソッドの呼び出し)による 文字列操作が既定の順序で実行されることです。
method chaining(メソッドチェーン)を使う際の各操作の意味をしっかりと理解することが重要になります。
発展知識:
StringBuilderクラスは、Stringのインスタンスを使用している場合と異なり、新しい文字列を生成する手間が 省けるため、より高効率に文字列操作を行うことができます。
特に文字列操作を頻繁に行うプログラムでは、StringBuilderの使用により効率的かつパフォーマンスを 向上させることが可能です。