StringBuilderクラスとは - 萌えJava超入門
StringBuilderクラス

StringBuilderクラスとは

文字列を扱うクラスです。

java.lang.StringBuilder

目次

1. StringBuilderクラスとは


Stringクラスと同じく文字列を扱うクラスです。
内部の char[] value に、値を保持する点も同じです。
ただ、StringBuilderクラスは、Stringクラスと違って、value を再度初期化できる仕様になっています。
Stringクラスは、値を変更する度にインスタンスを生成するのに対して、
StringBuilderクラスは、必要に応じて value だけを初期化します。
値を変更する場合には、Stringクラスよりも StringBuilderクラスの方が
パフォーマンスが高いと言われています。

萌えJava超入門
パフォーマンスの問題?
Stringよりも
処理が早いって事っすか?
萌えJava超入門
個人的にはそう信じている。
ただ、 VMの最適化が進んでいて
それほどの差はないとも聞いている。
萌えJava超入門
シキタリ的なものかしら。
文字数の少ない文字列では、Stringクラス、StringBuilderクラス のどちらを使用しても大差ないでしょう。
例えば、テキストファイルを、丸ごと一つの文字列として扱うような場合には
StringBuilderクラス を使用したいと思います。
よろしくお願いいたします。



2.継承関係


あまり気にしなくてもいいのですが、
StringBuilderクラスは、AbstractStringBuilderクラスのサブクラスです。
ご紹介するメソッドの中には、AbstractStringBuilderクラスから継承されているものも含まれています。
ご留意くださいませ。

StringBuilderクラスの継承関係
    java.lang.AbstractStringBuilder
       |
       └ java.lang.StringBuilder クラス
  



3.サンプルコード


StringBuilderクラスは、このように使います。
java.lang 所属なので、importは必要ありません。
萌えJava超入門
先に使い方を見てみよう。
//Sample01_01.java

class Sample01_01{
    public static void main(String[] args){

      StringBuilder sb = new StringBuilder();
      sb.append("Hello\n");
      sb.append("Good Morning\n");
      sb.append("NyanPaSuu\n");
      String str = sb.toString();
      System.out.println(str);
    }
}

コマンドライン
>cd ws
ws>javac -encoding UTF-8 Sample01_01.java
ws>java Sample01_01
Hello
Good Morning
NyanPaSuu

  1. new 演算子で インスタンスを生成します。
    普通のクラスと同じですね。
  2. appendメソッドで値を追加します。
  3. toStringメソッドで、Stringのインスタンスを得ています。
文字列を継ぎ足して、最後にStringにするのが基本的な使い方です。
実際にはもっともっと大きなサイズの文字列を想像してください。
改行をたくさん含むような文字列です。

萌えJava超入門 萌えJava超入門
最終的には
Stringクラスに
変換するのね。
萌えJava超入門
一般的にはそうかな。


4.サンプルコードStringで挑戦


Stringクラスで書くとこうなります。
//Sample01_02.java

class Sample01_02{
    public static void main(String[] args){

      String str = "Hello\n";
      str += "Good Morning\n";
      str += "NyanPaSuu\n";
      System.out.println(str);
    }
}

コマンドライン
>cd ws
ws>javac -encoding UTF-8 Sample01_02.java
ws>java Sample01_02
Hello
Good Morning
NyanPaSuu


萌えJava超入門 萌えJava超入門
こっちの方が
簡潔じゃない?
萌えJava超入門




お疲れ様でした。




© 2019 awasekagami