Showing posts with label trim. Show all posts
Showing posts with label trim. Show all posts

Wednesday, December 3, 2008

โดยปกติแล้ว string.Trim() จะเป็นการตัดพวก leading, trailing space ออกจาก string ที่เราต้องการ
แต่ถ้าเราต้องการตัด leading character อย่างอื่นที่ไม่ใช่ space ล่ะ?
เช่น 0000054214584 ซึ่งเราจะเจอบ่อย ๆ ในค่าจำพวก transaction ต่าง ๆ ที่อยู่ในรูปแบบ fixed length

เริ่มแรกคิดว่าจะจัดการด้วย Regular Exp โดยมอง 0 ที่ขึ้นต้นเป็น pattern แล้วจะจับเฉพาะส่วนหลัง
แต่ชักเอะใจ เลยลองนึกถึง trim() method ของ string ดู
ปรากฏว่า c# เตรียม overload ไว้ให้แล้ว เราสามารถระบุ character ตัวที่ต้องการจัด trim ได้เลย

ผมเลือก TrimStart() เพราะต้องการตัดเฉพาะส่วนหน้า ซึ่งต่างจาก Trim() ที่ตัดหัวท้ายออกหมด
ปล. ยังมี TrimEnd() ไว้ให้ด้วยอีก method นะครับ


[Test]
public void TrimFixture()
{
Assert.AreEqual("123", "123".TrimStart('0'));
Assert.AreEqual("123", "0123".TrimStart('0'));
Assert.AreEqual("123", "000123".TrimStart('0'));
Assert.AreEqual("100023", "100023".TrimStart('0'));
Assert.AreEqual("10002300", "10002300".TrimStart('0'));
}