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

การหาความยาว (Length) ของ StringBuilder ใน C#

ภาพรวม

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