文字列や他の値を追加する
StringBuilder クラスの append メソッドを使用すると、 StringBuilder オブジェクトに対して文字列や他のデータ型の値を追加することができます。値を追加すると用意されている領域の先頭から順に追加されていきます。ここでは Java の StringBuilder クラスで文字列や他の値を追加する方法について解説します。
(Last modified: )
StringBuffer.appendメソッドの使い方
StringBuilder オブジェクトに文字列を追加するには、 StringBuilder クラスで用意されている append メソッドを使用します。書式は次の通りです。
public StringBuilder append(String str)
パラメータ: str - 文字列 戻り値: このオブジェクトへの参照
1 番目の引数に StringBuilder オブジェクトに追加する文字列を指定します。メソッドを実行すると、すでに追加されている文字の最後に文字列が追加されます。
次のサンプルを見てください。
StringBuilder sb = new StringBuilder(); sb.append("AB"); sb.append("CDE"); sb.append("FG"); System.out.println(sb.toString()); // ABCDEFG
文字列を追加すると StringBuilder オブジェクトの先頭から順番に追加されていきます。 StringBuilder オブジェクトの領域に入りきらない文字列が追加された場合は、自動的に領域が拡張されて追加されます。
先ほどのサンプルの場合は次のように文字列が追加されます。
それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 JSample1-1.java という名前で保存します。
class JSample1_1{ public static void main(String[] args){ StringBuilder sb = new StringBuilder(); sb.append("ABCDE"); sb.append("FG"); sb.append("HIJKLNN"); sb.append("OPQR"); System.out.println(sb.toString()); } }
コンパイルを行います。
javac -encoding UTF-8 JSample1_1.java
その後で、次のように実行してください。
java JSample1_1
StringBuilder オブジェクトを作成し、文字列を 4 回追加したあと、文字列に変換してから画面に出力しました。追加された順番に文字列が並んでいます。
数値やオブジェクトを追加する
StringBuilder オブジェクトに追加できるのは文字列だけではなく数値やオブジェクトなども追加することができます。追加するデータ型に合わせて引数が異なる appned メソッドがそれぞれ用意されています。数値を追加した場合は数値を文字列表現したもの、オブジェクトを追加した場合はオブジェクトを文字列表現したものが追加されます。
public StringBuilder append(boolean b) public StringBuilder append(char c) public StringBuilder append(int i) public StringBuilder append(long lng) public StringBuilder append(float f) public StringBuilder append(double d) public StringBuilder append(char[] str) public StringBuilder append(char[] str, int offset, int len) public StringBuilder append(CharSequence s) public StringBuilder append(CharSequence s, int start, int end) public StringBuilder append(Object obj)
別の StringBuilder オブジェクトを追加することもできます。
public StringBuilder append(StringBuffer sb)
次のサンプルを見てください。
StringBuilder sb = new StringBuilder(); sb.append("Hey"); sb.append(10.75); sb.append(true); System.out.println(sb.toString()); // Hey10.75true
文字列を追加した場合と同じように、文字列表現に変換されたあとで順番に追加されていきます。
それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 JSample1-2.java という名前で保存します。
class JSample1_2{ public static void main(String[] args){ StringBuilder sb = new StringBuilder(); sb.append("Hey"); sb.append(75.2); sb.append(18L); sb.append(true); System.out.println(sb.toString()); } }
コンパイルを行います。
javac -encoding UTF-8 JSample1_2.java
その後で、次のように実行してください。
java JSample1_2
StringBuilder オブジェクトを作成し、文字列、 double 型の数値、 long 型の数値、 boolean 型の値を追加したあと、文字列に変換してから画面に出力しました。追加された順番に文字列が並んでいます。
文字列(String)に別の文字列を追加する
StringBuilder クラスの append メソッドを使うことで、文字列(String クラスのインスタンス)の最後に別の文字列を追加した新しい文字列を作成することができます。具体的には対象の文字列を引数に StringBuilder クラスのインスタンスを作成したあと文字列を追加し、そのあとで文字列に変換します。
次のサンプルを見てください。
String msg = "Hello! Tarou"; System.out.println(msg); // Hello! Tarou StringBuilder sb = new StringBuilder(msg); sb.append(" Bye."); msg = sb.toString(); System.out.println(msg); // Hello! Tarou Bye.
文字列から StringBuffer クラスのインスタンスを作成したあと、 append メソッドを使って別の文字列を追加し、そのあとで StringBuffer オブジェクトから文字列を作成して元の変数に代入しています。
-- --
Java の StringBuilder クラスで文字列や他の値を追加する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。