เมธอด 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(): รับประกันความจุขั้นต่ำ