String【Java言語】StringBuilderの使い方とメリット荒井弥生2017/2/222019/5/9Stringクラスの使い方は皆さんご存知だと思います。StringBuilderというクラスはご存知でしょうか?名前は知っているけど使ったことがない何をするためのクラスなの?Stringクラスとはどう違うの?といった疑問が出てくるかと思います。まとめStringBuilderとはStringBuilderは、Java5.0(Tiger)で新しく導入されたクラスです。そのためそれ以前のバージョンのJava(~Java1.4(Merlin))では使用できないため注意が必要です!StringBuilderは、一言でいうと、Stringクラス同様、文字列を扱うクラスです。Stringクラスでなく、StringBuildeクラスを使うというのはどのような時なのでしょうか?まず、Stringクラスについて復習も兼ねてお話しましょう。皆さんも一度は使ったことがあるStringクラスでの文字列扱いは以下の様な実装になります。}}一見、何の問題もなく処理が動くように見られます。確かに問題なく実行できますがStringクラスが持つ、ある問題がここには潜んでいます。それは、「Stringクラスには一度セットした値を変更することはできない。問題の原因JavaのプログラムはVM(仮想マシン)というプログラムを実行するために必要な仕組みが存在します。Javaでは変数を使用するために宣言を行いますが、宣言を行うことで値を保存しておくためのヒープ(保存スペース)をVMと呼ばれる仕組みの中に確保します。前項のプログラムのようにループを用いて値をセットしていくような処理の場合、ループ処理で値がセットされる度にこの保存スペースが新しく作り直されます。そのため無駄に保存スペースを食いつぶし処理速度の低下につながるという問題が起こります。100回、200回程度の処理ですと大した差ではありませんが数万件単位になるとその差は大きくなります。StringBuilderを使うそういったいくつかの問題を解決するためにStringBuilderを使ってみましょう。使い方については次のコードを見てみましょう。}}このプログラムでは最初にStringBuilderのインスタンスを生成しています。for文内では数値を文字列に変換し生成しStringBuilderのインスタン変数valにappendメソッドを使って追加します。全ての追加が終わった後、printlnメソッドを使い文字列を表示しています。大量に文字列を繋げていく場合にこのappendメソッドを使うことがポイントです!このようにStringBuilderを使うことで必要最小限の保存スペースだけを使い文字列を連結することができるStringBuilderとStringBufferStringBufferとは次にStringBufferについてお話します。StringBufferもStringBuilder同様、文字列を扱うクラスです。StringBufferクラスもStringBuilderクラス同様、Stringクラスが扱えない可変長の文字列の扱いに適しています。StringBufferとの違いは?先程StringBufferについて「StringBuilder同様」と記載しましたが、「StringBufferとStringBuilderって何が違うの?」「どちらかひとつでいいじゃん!」と思う方もいるかもしれません。StringBuilder・StringBufferそれぞれのクラスの相違点はあります。一言でいうと、「StringBuilderはシングルスレッド(バッチ処理のような直列処理)向き」「StringBuffferはマルチスレッド(並列処理)向き」ということになります。シングルスレッドやマルチスレッドについてよくわからないと思う方やStringBufferについては下記で詳しく使い方や違いを説明しています。2019年5月28日まとめStringBuilderについてお話させて頂きました。以降から使用可能ループ内で文字列の操作(連結や挿入)を行いたいときにStringBuilderを使うと良いでしょう。思ったらぜひこの記事を読み返してください!TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。