ภาพรวม
StringBuilder.Length คือจำนวนตัวอักษรที่มีอยู่จริงในขณะนั้น ต่างจาก Capacity ที่เป็นพื้นที่จัดสรรไว้
ตัวอย่างที่ 1: ตรวจสอบ Capacity, MaxCapacity, Length ของ StringBuilder 4 แบบ
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("StringBuilder1 capacity = " + strBuilder1.Capacity);
Console.WriteLine("StringBuilder1 maximum capacity = " + strBuilder1.MaxCapacity);
Console.WriteLine("StringBuilder1 length = " + strBuilder1.Length);
Console.WriteLine("StringBuilder2 capacity = " + strBuilder2.Capacity);
Console.WriteLine("StringBuilder2 maximum capacity = " + strBuilder2.MaxCapacity);
Console.WriteLine("StringBuilder2 length = " + strBuilder2.Length);
Console.WriteLine("StringBuilder3 capacity = " + strBuilder3.Capacity);
Console.WriteLine("StringBuilder3 maximum capacity = " + strBuilder3.MaxCapacity);
Console.WriteLine("StringBuilder3 length = " + strBuilder3.Length);
Console.WriteLine("StringBuilder4 capacity = " + strBuilder4.Capacity);
Console.WriteLine("StringBuilder4 maximum capacity = " + strBuilder4.MaxCapacity);
Console.WriteLine("StringBuilder4 length = " + strBuilder4.Length);
}
}
ผลลัพธ์
Is StringBuilder3 equal to StringBuilder2? = True StringBuilder1 capacity = 16 StringBuilder1 maximum capacity = 2147483647 StringBuilder1 length = 3 StringBuilder2 capacity = 16 StringBuilder2 maximum capacity = 2147483647 StringBuilder2 length = 0 StringBuilder3 capacity = 16 StringBuilder3 maximum capacity = 2147483647 StringBuilder3 length = 0 StringBuilder4 capacity = 5 StringBuilder4 maximum capacity = 2147483647 StringBuilder4 length = 0
ตัวอย่างที่ 2: StringBuilder ที่มีสตริงยาวและสั้น
using System;
using System.Text;
public class Demo
{
public static void Main(String[] args)
{
StringBuilder strBuilder1 = new StringBuilder("hbjhbkjhbm");
StringBuilder strBuilder2 = new StringBuilder("TomHanks");
StringBuilder strBuilder3 = new StringBuilder();
Console.WriteLine("Capacity of StringBuilder1 = " + strBuilder1.Capacity);
Console.WriteLine("Length of StringBuilder1 = " + strBuilder1.Length);
Console.WriteLine("\nCapacity of StringBuilder2 = " + strBuilder2.Capacity);
Console.WriteLine("Length of StringBuilder2 = " + strBuilder2.Length);
Console.WriteLine("\nCapacity of StringBuilder3 = " + strBuilder3.Capacity);
Console.WriteLine("Length of StringBuilder3 = " + strBuilder3.Length);
}
}
ผลลัพธ์
Capacity of StringBuilder1 = 16 Length of StringBuilder1 = 10 Capacity of StringBuilder2 = 16 Length of StringBuilder2 = 8 Capacity of StringBuilder3 = 16 Length of StringBuilder3 = 0
สรุป
Length= จำนวนตัวอักษรจริง (อ่าน/เขียนได้ ตั้งค่าได้เพื่อ truncate/expand)Capacity= พื้นที่จัดสรร (เพิ่มอัตโนมัติ)- สร้างด้วยสตริง: Length = ความยาวสตริง, Capacity >= Length
- สร้างว่าง: Length = 0, Capacity = 16