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

ความแตกต่างระหว่าง TrimStart() และ TrimEnd() ใน C#

ความแตกต่างระหว่าง TrimStart() และ TrimEnd() ใน C#

ทั้งสองเป็นเมธอดของ string ใช้ลบอักขระที่ไม่ต้องการ แต่ตำแหน่งที่ลบต่างกัน

TrimStart() - ลบหน้าสตริง (Leading)

ลบอักขระนำหน้า (leading characters) ที่ระบุในอาร์เรย์


using System;

class Program
{
    static void Main()
    {
        // ลบศูนย์นำหน้า
        string str = "0009678".TrimStart(new char[] { '0' });
        Console.WriteLine(str); // 9678

        // ลบช่องว่างนำหน้า (default behavior)
        string str2 = "   Hello".TrimStart();
        Console.WriteLine($"'{str2}'"); // 'Hello'

        // ลบหลายตัวอักษร
        string str3 = "abcHello".TrimStart('a', 'b', 'c');
        Console.WriteLine(str3); // Hello
    }
}

TrimEnd() - ลบท้ายสตริง (Trailing)

ลบอักขระท้าย (trailing characters) ที่ระบุในอาร์เรย์


using System;

class Program
{
    static void Main()
    {
        // ลบเลข 1 ท้าย
        string str = "7341111".TrimEnd(new char[] { '1' });
        Console.WriteLine(str); // 734

        // ลบช่องว่างท้าย (default)
        string str2 = "Hello   ".TrimEnd();
        Console.WriteLine($"'{str2}'"); // 'Hello'

        // ลบหลายตัวอักษร
        string str3 = "Helloxyz".TrimEnd('x', 'y', 'z');
        Console.WriteLine(str3); // Hello
    }
}

Trim() - ลบทั้งหน้าและท้าย


string s = "  Hello World  ";
Console.WriteLine($"'{s.Trim()}'");        // 'Hello World'
Console.WriteLine($"'{s.TrimStart()}'");   // 'Hello World  '
Console.WriteLine($"'{s.TrimEnd()}'");     // '  Hello World'

ตารางเปรียบเทียบ

เมธอดลบที่พารามิเตอร์ค่า Default
TrimStart()หน้า (Left)params char[]Whitespace (space, tab, newline)
TrimEnd()ท้าย (Right)params char[]Whitespace
Trim()ทั้งสองข้างparams char[]Whitespace

ตัวอย่างขั้นสูง


// ลบอักขระพิเศษหน้า/ท้าย
string filename = "***report_final_v2***.pdf";
string clean = filename.Trim('*', '.', ' '); // "report_final_v2"

// TrimStart/TrimEnd กับ string (C# 11+ - .NET 7+)
string s = "abcHelloabc";
Console.WriteLine(s.TrimStart("abc")); // "Helloabc"
Console.WriteLine(s.TrimEnd("abc"));   // "abcHello"

// Custom Trim: ลบคำเฉพาะ
string text = "Note: Important message";
string cleaned = text.TrimStart("Note: ".ToCharArray()); // "Important message"

กรณีใช้งานทั่วไป

  • TrimStart: ลบ prefix, indentation, leading zeros, BOM characters
  • TrimEnd: ลบ suffix, trailing spaces, newline, file extensions
  • Trim: ทำความสะอาด input จากผู้ใช้, parsing, normalization

ประสิทธิภาพ

  • สร้างสตริงใหม่ (strings are immutable)
  • O(n) โดย n = ความยาวสตริง
  • สำหรับ high-performance ใช้ Span<char> และ MemoryExtensions.Trim