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'));
}

Monday, December 1, 2008

test syntax hilight


public class Person
{
private string name;
private int age;

public string Introduce()
{
return string.Format("hello my name is {0}, I'm {1} years old", name, age);
}
}