2015年1月20日 星期二

[ASP.NET for VB.NET] String.Trim 無法刪除空白字元

參考資料1.Trimming Character Strings
參考資料2.魔鬼般的細節:使用 C# 的 String.Trim() 方法刪除空白字元

有時候會因為複製Excel檔裡的資料,貼到自己的程式中執行,在複製過來的資料中可能因為排版的關係,而產生一些特殊字元,使得您再怎麼刪除空白字元都無法刪除,解決辦法如下。

        Dim str_data As String = "   ABCDE      "
        Dim whiteSpaceDelimiters() As Char = _
        {ChrW(&H9),ChrW(&HA),ChrW(&HB),ChrW(&HC),ChrW(&HD),ChrW(&H20), _
          ChrW(&HA0),ChrW(&H2000),ChrW(&H2001),ChrW(&H2002),ChrW(&H2003), _
          ChrW(&H2004),ChrW(&H2005),ChrW(&H2006),ChrW(&H2007),ChrW(&H2008), _
          ChrW(&H2009),ChrW(&H200A),ChrW(&H200B),ChrW(&H3000),ChrW(&HFEFF) _
        }
        str_data = str_data.Trim(whiteSpaceDelimiters)
        Response.Write("[" & str_data & "]")


        '如果是C#
        'char[] whiteSpaceDelimiters = new char[]
        '{
        ''\u0009’,  // CHARACTER TABULATION
        ''\u000A’,  // LINE FEED
        ''\u000B’,  // LINE TABULATION
        ''\u000C’,  // FORM FEED
        ''\u000D’,  // CARRIAGE RETURN
        ''\u0020’,  // SPACE
        ''\u00A0’,  // NO-BREAK SPACE
        ''\u2000’,  // EN QUAD
        ''\u2001’,  // EM QUAD
        ''\u2002’,  // EN SPACE
        ''\u2003’,  // EM SPACE
        ''\u2004’,  // THREE-PER-EM SPACE
        ''\u2005’,  // FOUR-PER-EM SPACE
        ''\u2006’,  // SIX-PER-EM SPACE
        ''\u2007’,  // FIGURE SPACE
        ''\u2008’,  // PUNCTUATION SPACE
        ''\u2009’,  // THIN SPACE
        ''\u200A’,  // HAIR SPACE
        ''\u200B’,  // ZERO WIDTH SPACE
        ''\u3000’,  // IDEOGRAPHIC SPACE
        ''\uFEFF’  // ZERO WIDTH NO-BREAK SPACE
        '};

沒有留言:

張貼留言