StringBuilderクラス
StringBuilderクラスとは
文字列を扱うクラスです。
java.lang.StringBuilder
目次
1. StringBuilderクラスとは
Stringクラスと同じく文字列を扱うクラスです。
内部の char[] value に、値を保持する点も同じです。
ただ、StringBuilderクラスは、Stringクラスと違って、value を再度初期化できる仕様になっています。
Stringクラスは、値を変更する度にインスタンスを生成するのに対して、
StringBuilderクラスは、必要に応じて value だけを初期化します。
値を変更する場合には、Stringクラスよりも StringBuilderクラスの方が
パフォーマンスが高いと言われています。
パフォーマンスの問題?
Stringよりも
処理が早いって事っすか?
個人的にはそう信じている。
ただ、 VMの最適化が進んでいて
それほどの差はないとも聞いている。
シキタリ的なものかしら。
文字数の少ない文字列では、Stringクラス、StringBuilderクラス のどちらを使用しても大差ないでしょう。
例えば、テキストファイルを、丸ごと一つの文字列として扱うような場合には
StringBuilderクラス を使用したいと思います。
よろしくお願いいたします。
2.継承関係
あまり気にしなくてもいいのですが、
StringBuilderクラスは、AbstractStringBuilderクラスのサブクラスです。
ご紹介するメソッドの中には、AbstractStringBuilderクラスから継承されているものも含まれています。
ご留意くださいませ。
StringBuilderクラスの継承関係
java.lang.AbstractStringBuilder
|
└ java.lang.StringBuilder クラス
3.サンプルコード
StringBuilderクラスは、このように使います。
java.lang 所属なので、importは必要ありません。
先に使い方を見てみよう。
//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
- new 演算子で インスタンスを生成します。
普通のクラスと同じですね。
- appendメソッドで値を追加します。
- toStringメソッドで、Stringのインスタンスを得ています。
文字列を継ぎ足して、最後にStringにするのが基本的な使い方です。
最終的には
Stringクラスに
変換するのね。
一般的にはそうかな。
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
こっちの方が
簡潔じゃない?
お疲れ様でした。