Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การหาความจุ (Capacity) ของ StringBuilder ใน C#

ภาพรวม

StringBuilder.Capacity คือจำนวนตัวอักษรที่จัดเก็บได้โดยไม่ต้องจัดสรรหน่วยความ憶ใหม่ ค่าเริ่มต้น 16 เพิ่มขึ้นอัตโนมัติเมื่อเกิน

ตัวอย่างที่ 1: สร้าง StringBuilder 3 แบบ และตรวจสอบ 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

ตัวอย่างที่ 2: เปรียบเทียบ Capacity และ MaxCapacity

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("StringBuilder2 capacity = " + strBuilder2.Capacity);
        Console.WriteLine("StringBuilder3 capacity = " + strBuilder3.Capacity);
        Console.WriteLine("StringBuilder4 capacity = " + strBuilder4.Capacity);
    }
}

ผลลัพธ์

Is StringBuilder3 equal to StringBuilder2? = True
StringBuilder1 capacity = 16
StringBuilder2 capacity = 16
StringBuilder3 capacity = 16
StringBuilder4 capacity = 5

สรุป

  • Capacity เริ่มต้น 16 ตัวอักษร
  • สร้างด้วยสตริง: Capacity >= ความยาวสตริง (ปกติ 16)
  • สร้างระบุตัวเลข: Capacity = ตัวเลขที่ระบุ
  • Equals() เปรียบเทียบ reference ไม่ใช่ค่าข้างใน