有時在作字串截取處理時,常常遇到字串中有中文、英文或特殊符號,利用substring or mid 函數,無法截取的很準確(因為兩者都是以Length來計算長度而不是用位元組數)。

索性動手寫了一支小程式解決這個問題 。程式碼如下:

''' <summary>

''' 截取index0到某Length的字串

''' </summary>

''' <param name="p_SourceString">來源字串</param>

''' <param name="p_cutLength">截取長度</param>

Public Function CutString(p_SourceString AsString, p_cutLength AsInteger) As String

    Dim l_arr = p_SourceString.ToCharArray

    Dim l_newstr As String = "", l_cont = 0

    For Each c As CharIn l_arr

       l_cont += System.Text.Encoding.Default.GetByteCount(c)

       If l_cont <= p_cutLength Then

           l_newstr += c

       Else

           Exit For

       EndIf

    Next

    Return l_newstr

EndFunction

arrow
arrow
    全站熱搜

    忙裡偷閒 發表在 痞客邦 留言(0) 人氣()