泰米尔语unicode字符串的最后一个字符

时间:2014-03-11 05:03:36

标签: vb.net unicode-string

如何获取unicode泰米尔语字符串的最后一个字符。 例如,我有一个像"சுதீப்", "செய்தியை", "கொள்ளாதது", "வில்லன்"

这样的字符串列表

如果我对上面的字符串使用mystring.Last() 我正在

“சுதீப்”= ""்"" “செய்தியை”= "ை “கொள்ளாதது”= ""ு"" “வில்லன்”= ""்""

但我需要

“சுதீப்”= ""ப்"" “செய்தியை”= ""யை"" “கொள்ளாதது”= ""து"" “வில்லன்”= ""ன்""

1 个答案:

答案 0 :(得分:4)

我建议您创建一个辅助函数,循环遍历每个char并检查UnicodeCategory

<强>扩展

<System.Runtime.CompilerServices.Extension()> _
Public Module StringExtensions

    <System.Runtime.CompilerServices.Extension()> _
    Public Function Split(str As String, category As UnicodeCategory) As IList(Of String)
        Dim list As New List(Of String)
        If ((Not str Is Nothing) AndAlso (str.Length > 0)) Then
            Dim item As String = Nothing
            Dim chr As Char = Nothing
            For Each chr In str
                If (Char.GetUnicodeCategory(chr) = category) Then
                    If ((Not item Is Nothing) AndAlso (item.Length > 0)) Then
                        list.Add(item)
                    End If
                    item = chr
                Else
                    item += chr
                End If
            Next
            If ((Not item Is Nothing) AndAlso (item.Length > 0)) Then
                list.Add(item)
            End If
        End If
        Return list
    End Function

End Module

<强>用法

Imports [your_namespace].StringExtensions

Dim values As String() = {"சுதீப்", "செய்தியை", "கொள்ளாதது", "வில்லன்"}
Dim builder As New System.Text.StringBuilder()

For Each item As String In values
    builder.AppendLine(String.Concat(item, " : ", item.Split(UnicodeCategory.OtherLetter).Last()))
Next

MessageBox.Show(builder.ToString())

<强>输出

சுதீப் : ப்
செய்தியை : யை
கொள்ளாதது : து
வில்லன் : ன்