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

เมธอด StringBuilder.ToString() ใน C# : แปลง StringBuilder เป็น String

เมธอด StringBuilder.ToString() ใน C# ใช้แปลงค่าของ StringBuilder ให้เป็น String รองรับทั้งการแปลงทั้งหมดและการแปลงเฉพาะส่วน (substring)

รูปแบบไวยากรณ์ (Syntax)

public override string ToString();
public string ToString(int startIndex, int length);
  • startIndex : ตำแหน่งเริ่มต้นของ substring (เริ่มจาก 0)
  • length : ความยาวของ substring

ตัวอย่างที่ 1: การใช้งานพื้นฐานกับ Capacity และ Length

using System;
using System.Text;

public class Demo
{
    public static void Main()
    {
        StringBuilder strBuilder = new StringBuilder("Katie");
        
        Console.WriteLine("String = " + strBuilder.ToString());
        Console.WriteLine("\nStringBuilder capacity = " + strBuilder.Capacity);
        Console.WriteLine("StringBuilder length = " + strBuilder.Length);
        
        strBuilder.EnsureCapacity(35);
        Console.WriteLine("\nStringBuilder capacity = " + strBuilder.Capacity);
        Console.WriteLine("StringBuilder length = " + strBuilder.Length);
        
        strBuilder.EnsureCapacity(0);
        strBuilder.Length = 0;
        Console.WriteLine("\nStringBuilder capacity = " + strBuilder.Capacity);
        Console.WriteLine("StringBuilder length = " + strBuilder.Length);
    }
}

ผลลัพธ์

String = Katie
StringBuilder capacity = 16
StringBuilder length = 5
StringBuilder capacity = 35
StringBuilder length = 5
StringBuilder capacity = 35
StringBuilder length = 0

ตัวอย่างที่ 2: การใช้ ToString(startIndex, length) สำหรับ Substring

using System;
using System.Text;

public class Demo
{
    public static void Main()
    {
        StringBuilder strBuilder = new StringBuilder("TomHanks");
        
        Console.WriteLine("StringBuilder = " + strBuilder.ToString());
        Console.WriteLine("String = " + strBuilder.ToString(3, 5)); // เริ่มที่ index 3 ความยาว 5 ตัวอักษร
        
        Console.WriteLine("\nStringBuilder capacity = " + strBuilder.Capacity);
        Console.WriteLine("StringBuilder length = " + strBuilder.Length);
        
        strBuilder.EnsureCapacity(35);
        Console.WriteLine("\nStringBuilder capacity = " + strBuilder.Capacity);
        Console.WriteLine("StringBuilder length = " + strBuilder.Length);
        
        strBuilder.EnsureCapacity(0);
        strBuilder.Length = 0;
        Console.WriteLine("\nStringBuilder capacity = " + strBuilder.Capacity);
        Console.WriteLine("StringBuilder length = " + strBuilder.Length);
    }
}

ผลลัพธ์

StringBuilder = TomHanks
String = Hanks
StringBuilder capacity = 16
StringBuilder length = 8
StringBuilder capacity = 35
StringBuilder length = 8
StringBuilder capacity = 35
StringBuilder length = 0

สรุป

  • ToString() ไม่มีพารามิเตอร์ : คืนค่าสตริงทั้งหมด
  • ToString(startIndex, length) : คืนค่าส่วนย่อย (substring) โดยไม่ต้องสร้าง StringBuilder ใหม่
  • Capacity : ความจุปัจจุบันของ buffer ภายใน (เพิ่มขึ้นอัตโนมัติ)
  • Length : ความยาวจริงของข้อมูลที่เก็บอยู่
  • EnsureCapacity() : รับประกันความจุขั้นต่ำ