StringBufferクラスAdvertisement説明
基本的にはStringクラスと似ている。こっちは変更可能な文字列として管理する。
その名の通り、バッファ領域を確保するオブジェクトをつくる。 メソッドとかコンストラクタとかはココ↓。 http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/StringBuffer.html ちょっと引用。 文字列バッファは、バイナリ文字列の連結演算子 + を実装するためにコンパイラで使用されます。たとえば、次のコード 作ってみた。
とりあえずつくるだけ。
public class Test{
public static void main(String args[]){
//これで16文字分の領域
StringBuffer sb1 = new StringBuffer();
//これは10文字分の領域
StringBuffer sb2 = new StringBuffer(10);
//これは、文字列「abc」+16文字分の領域
StringBuffer sb3 = new StringBuffer("abc");
}
}
説明は上の通り。
length() と capacity()メソッド
length()メソッド。オブジェクトが管理してる文字列の文字数を返す。
capacity()は名前の通り、キャパシティー(許容量)を返す。バッファが何文字分の領域を確保しているか知りたいときに使う。 使用例。
public class Test{
public static void main(String args[]){
StringBuffer sb1 = new StringBuffer("abc");
System.out.println("文字の数は : " + sb1.length());
System.out.println("確保領域は : " + sb1.capacity());
}
}
上の場合sb1が管理している文字数はabcの3文字。領域はabc+16文字分だから19文字分の領域のはず。結果 文字の数は : 3 確保領域は : 19予想通り。 append()メソッド
append()メソッドは文字列を追加するメソッド。
public class Test{
public static void main(String args[]){
StringBuffer sb1 = new StringBuffer("abc");
System.out.println(sb1);
sb1.append("def");
System.out.println(sb1);
}
}
結果
abc abcdef文字列defが、初期値のabcに連結された。 ちなみに sb1 = sb1 + "def"; とかやってもダメなので注意。 Stringクラスならできる。 toString()メソッド
toString()はStringBufferオブジェクトをStringオブジェクトに変換して返すメソッド。
たとえば以下のコードはコンパイルエラー。
public class Test{
public static void main(String args[]){
StringBuffer sb = new StringBuffer("abc");
String str = new String();
str = sb;
}
}
StringとStringBufferは、おなじ文字列を扱うオブジェクトでも、互換性がない。そこで以下のようにする。
public class Test{
public static void main(String args[]){
StringBuffer sb = new StringBuffer("abc");
String str = new String();
str = sb.toString();
}
}
Advertisement |
ショートカット・634・このカテゴリのトップページに戻る ・634labs UIコレクションギャラリー サイト検索Y!ログールビリヤード |