如何获取unicode泰米尔语字符串的最后一个字符。
例如,我有一个像"சுதீப்", "செய்தியை", "கொள்ளாதது", "வில்லன்"
如果我对上面的字符串使用mystring.Last() 我正在
“சுதீப்”= ""்""
“செய்தியை”= "ை
“கொள்ளாதது”= ""ு""
“வில்லன்”= ""்""
但我需要
“சுதீப்”= ""ப்""
“செய்தியை”= ""யை""
“கொள்ளாதது”= ""து""
“வில்லன்”= ""ன்""
答案 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())
<强>输出强>
சுதீப் : ப்
செய்தியை : யை
கொள்ளாதது : து
வில்லன் : ன்