C#でStringBuilderの容量(Capacity)を取得する方法を徹底解説
C#のStringBuilderクラスには、現在確保されているバッファのサイズ(容量)を取得するためのCapacityプロパティが用意されています。このプロパティを参照することで、文字列の連結や追加を行う際に内部でどれだけのメモリが割り当てられているかを簡単に確認できます。
ここでは、実際のコード例と実行結果をもとに、StringBuilderの容量の仕組みを詳しく見ていきましょう。
例1:Capacityプロパティの基本的な使い方
using System;
using System.Text;
public class Demo {
public static void Main(String[] args) {
StringBuilder strBuilder1 = new StringBuilder("Tim");
StringBuilder strBuilder2 = new StringBuilder("Tom");
StringBuilder strBuilder3 = new StringBuilder();
Console.WriteLine("Capacity of StringBuilder1 = "+strBuilder1.Capacity);
Console.WriteLine("Capacity of StringBuilder2 = "+strBuilder2.Capacity);
Console.WriteLine("Capacity of StringBuilder3 = "+strBuilder3.Capacity);
strBuilder2 = strBuilder3;
Console.WriteLine("Is StringBuilder3 equal to StringBuilder2? = "+strBuilder3.Equals(strBuilder2));
}
}
出力結果
Capacity of StringBuilder1 = 16 Capacity of StringBuilder2 = 16 Capacity of StringBuilder3 = 16 Is StringBuilder3 equal to StringBuilder2? = True
コードの解説
初期容量を指定せずにStringBuilderを生成した場合、既定では16文字分の容量が自動的に確保されます。そのため、初期値として「Tim」や「Tom」のような短い文字列を渡しても、容量はすべて16になります。
また、strBuilder2 = strBuilder3; の代入により両者が同一インスタンスを参照するようになったため、Equals()メソッドによる比較結果は True となっています。
例2:コンストラクタで初期容量を指定した場合
続いて、コンストラクタに数値を渡して初期容量を明示的に指定した場合の動作を確認してみましょう。
using System;
using System.Text;
public class Demo {
public static void Main(String[] args) {
StringBuilder strBuilder1 = new StringBuilder("Amy");
StringBuilder strBuilder2 = new StringBuilder("Katie");
StringBuilder strBuilder3 = new StringBuilder();
StringBuilder strBuilder4 = new StringBuilder(5);
strBuilder2 = strBuilder3;
Console.WriteLine("Is StringBuilder3 equal to StringBuilder2? = "+strBuilder3.Equals(strBuilder2));
Console.WriteLine("StringBuider1 capacity = "+strBuilder1.Capacity);
Console.WriteLine("StringBuider2 capacity = "+strBuilder2.Capacity);
Console.WriteLine("StringBuider3 capacity = "+strBuilder3.Capacity);
Console.WriteLine("StringBuider4 capacity = "+strBuilder4.Capacity);
}
}
出力結果
Is StringBuilder3 equal to StringBuilder2? = True StringBuider1 capacity = 16 StringBuider2 capacity = 16 StringBuider3 capacity = 16 StringBuider4 capacity = 5
ポイントまとめ
- 既定の容量は16文字です。文字列がこれを超えて追加されると、容量は自動的に拡張されます(通常は現在の容量の2倍+追加文字数)。
new StringBuilder(5)のようにコンストラクタで数値を渡すと、初期容量を明示的に指定できます。上記の出力でも容量が5になっていることが確認できます。- 扱う文字列のおおよその長さが事前にわかっている場合は、初期容量を適切に設定することで不要な再割り当てが減り、パフォーマンスの向上につながります。
-
パソコンの最大RAM容量を確認する方法【Windows・Mac・Linux対応】
新しいデスクトップPCやノートPCを購入する際、まずは低価格モデルを選んでおき、後からRAMを最大容量まで増設する方がコストを抑えられるケースが多くあります。では、あなたのパソコンは一体どれくらいのRAMを搭載できるのでしょうか?すでに最大容量に達しているのか、それともまだ増設の余地があるのか。このガイドでは、現在搭載されているRAMの容量と、パソコンがサポートする最大RAM容量を簡単に確認する方法をわかりやすく解説します。 パソコンに搭載されているRAM容量を確認する方法 パソコンのRAM容量を調べるのはとても簡単です。Windows 10の場合、キーボードショートカット Win +
-
Windows 11でIPアドレスを確認する方法|コマンドプロンプトと設定アプリの手順
インターネット接続に不具合が生じたとき、さまざまな対処法を試す中で、自分のPCのIPアドレスを把握しておくと意外と役立ちます。 IPアドレス(Internet Protocol Address)とは、インターネット上でデバイスを識別するための一意な数値アドレスのことです。機械にとっての「郵便番号」と考えると分かりやすいでしょう。現実世界で郵便番号が住所を特定するように、IPアドレスはコンピューターの場所を示し、デバイス同士がお互いを見つけて通信できるようにしています。 Windows 11でIPアドレスを確認する方法は複数あります。まずは最もシンプルな方法である「コマンドプロンプト」を使う