文字列の連結

Posted by muchag | Java |
初回投稿:2011-04-09 (土) 1:10:36 | 最終更新:2011-04-09 (土) 1:10:36

文字列の連結は String クラスの場合、連結子 + を用いる。
しかし、他のやり方があった。
StringBuffer クラス、 StringBuilder クラスだ。

文字列どうしを結合したいとき、Stringだと”+”演算子を使いますが、
Stringが固定長文字列のため、”+”を使用するたびインスタンスをnewします。
newの回数が多くなるのはパフォーマンス的な立場からすると良くない手法です。

StringBuffer?は可変長で結合のときにはappend(String str)メソッドを使えばnewせずにすむので、
パフォーマンスを考慮するとこちらが良いとされています。

引用元サイト:ピノキヲWiki Java/StringBufferとStringBuilderとString

上記引用元サイトにて、パフォーマンス実験結果を見ることができる。

書式
String
  1. String myString = "Test";
  2. int myInt = 24;
  3.  
  4. String myTitle = myString + String.valueOf(myInt);

JDK 6 ドキュメント:String
 

StringBuffer, StringBuilder
  1. String myString = "Test";
  2. int myInt = 24;
  3.  
  4. StringBuffer stringBuffer = new StringBuffer();
  5. stringBuffer.append(myString).append(myInt);

JDK 6 ドキュメント:StringBuffer
※StringBuilder も全く同じ書式
JDK 6 ドキュメント:StringBuilder

確かに可読性は落ちるかもしれないけど、
append メソッドを用いることで型変換をしなくて済むのはありがたいね。
 

StringBuffer と StringBuilder の差異

参考元サイト:J2SE 虎の穴 文字列操作 スレッドセーフ vs パフォーマンス StringBuilder
さっぱりチンプンカンプン・・・。 🙄

Posted by muchag | Java |
初回投稿:2011-04-09 (土) 1:10:36 | 最終更新:2011-04-09 (土) 1:10:36

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment