はじめに
Stringクラスはイミュータブル(不変)なので、文字列を部分的に変えたりする操作が苦手である。
加えて、String+Stringをする度に、新しいObjectをnewしているのでメモリ面でも計算面でも問題を抱えている。
StringBuilderクラス
そこで登場するのがStringBuilderクラスである。StringBuilderクラスの特徴としては、
- 一つのインスタンスを使い回す
- 可変長
- シングルスレッド前提
である。
注意点
可変長を過信しすぎない
StringBuilderは容量が足りないときに、現在の2倍に拡張するという特性を持っているため、できればコンストラクタに引数を渡してあらかじめ容量を指定しておく方が事故が少ない
インデックス指定の方法
StringBuilderにインデックスでアクセスするときは左から順に0,1,2...となっていることに注意する
Stringじゃないことを忘れない
Stringとして扱いたいときはtoString()が必要なことを忘れない。
マルチスレッドに対応しているStringBufferというクラスもあるが、それに関してはまた今度解説する。
