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

การแบ่งสตริงด้วย String Delimiter ใน C#

ภาพรวม

การแบ่งสตริง (String Splitting) ใน C# ใช้เมธอด String.Split() ซึ่งแยกสตริงเป็นอาร์เรย์ของสตริงย่อย ตาม Delimiter (ตัวคั่น) ที่ระบุ Delimiter สามารถเป็น Char, String, หรือ Char Array

ตัวอย่างพื้นฐาน: คั่นด้วย Comma

using System;

class Program
{
    static void Main()
    {
        string str = "Welcome,to,New York";
        
        // กำหนด Delimiter เป็น Char Array
        char[] delimiter = new char[] { ',' };
        
        // แบ่งสตริง
        string[] parts = str.Split(delimiter, StringSplitOptions.None);
        
        foreach (string part in parts)
            Console.WriteLine(part);
    }
}

ผลลัพธ์

Welcome
to
New York

StringSplitOptions

Optionคำอธิบาย
Noneรวม Empty Strings (ถ้ามี Delimiter ติดกัน)
RemoveEmptyEntriesตัด Empty Strings ออก
TrimEntries.NET 5+ : Trim Whitespace ทุก Entry

ตัวอย่าง StringSplitOptions

string str = "A,,B,C,,";

var none = str.Split(',', StringSplitOptions.None);
// ["A", "", "B", "C", "", ""]

var removeEmpty = str.Split(',', StringSplitOptions.RemoveEmptyEntries);
// ["A", "B", "C"]

var trim = " A , B , C ".Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries);
// ["A", "B", "C"]

การแบ่งด้วย String Delimiter (หลายตัวอักษร)

string str = "One::Two::Three";
string[] parts = str.Split(new string[] { "::" }, StringSplitOptions.None);
// ["One", "Two", "Three"]

การจำกัดจำนวนผลลัพธ์ (Max Substrings)

string str = "A,B,C,D,E";

// แบ่งได้สูงสุด 3 ส่วน (2 Delimiters แรก)
string[] parts = str.Split(',', 3, StringSplitOptions.None);
// ["A", "B", "C,D,E"]

Best Practices

  • ใช้ StringSplitOptions.RemoveEmptyEntries เพื่อหลีกเลี่ยง Empty Strings
  • ใช้ TrimEntries (.NET 5+) สำหรับข้อมูลจาก User Input
  • Delimiter หลายตัว: str.Split(new[] { ',', ';', '|' }, ...)
  • Regex.Split() สำหรับ Pattern ซับซ้อน (ดูบทความถัดไป)
  • Span-based: str.AsSpan().Split(...) (.NET Core 2.1+) - ไม่ Allocate Array