September Morn Update
This commit is contained in:
parent
4e2d22a71d
commit
aac6731f2c
6856 changed files with 141342 additions and 21127 deletions
20
Task/String-length/Visual-Basic-.NET/string-length-2.visual
Normal file
20
Task/String-length/Visual-Basic-.NET/string-length-2.visual
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
Module CharacterLength
|
||||
Function GetUTF16CodeUnitsLength(s As String) As Integer
|
||||
Return s.Length
|
||||
End Function
|
||||
|
||||
Private Function GetUTF16SurrogatePairCount(s As String) As Integer
|
||||
GetUTF16SurrogatePairCount = 0
|
||||
For i = 1 To s.Length - 1
|
||||
If Char.IsSurrogatePair(s(i - 1), s(i)) Then GetUTF16SurrogatePairCount += 1
|
||||
Next
|
||||
End Function
|
||||
|
||||
Function GetCharacterLength_FromUTF16(s As String) As Integer
|
||||
Return GetUTF16CodeUnitsLength(s) - GetUTF16SurrogatePairCount(s)
|
||||
End Function
|
||||
|
||||
Function GetCharacterLength_FromUTF32(s As String) As Integer
|
||||
Return GetByteLength(s, Text.Encoding.UTF32) \ 4
|
||||
End Function
|
||||
End Module
|
||||
Loading…
Add table
Add a link
Reference in a new issue