'这个当然可以,用mid 取字符串的位置长度
从网站建设到定制行业解决方案,为提供成都网站建设、成都做网站服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。创新互联将不断加快创新步伐,提供优质的建站服务。
Dim str As String = "16461了工有6149夺中46146好31"
Label1.Text = Mid(str, str.Length - 3, 3) '取字符串最后3位数
Label2.Text = Mid(str, 1, 3) '取字符串前面3位数
上面思路是正确的, 用ascw 函数也可以
private function LenC( ps as string ) as Integer
Dim n As Integer
Dim StrLen As Integer
For n = 1 To Len(Text1.Text)
If Ascw(Mid(Text1.Text, n, 1)) 256 Then
StrLen = StrLen + 2
Else
StrLen = StrLen + 1
Next n
return strLen
end function
遍历每一个字符,看是全角还是半角的。半角的字符总数 +1,全角的字符总数 +2。
参考:
Public Function GetByteLength(ByVal value As String) As Long
Dim i As Long = 0
For Each c As Char In value
If (c.ToString().Length = System.Text.Encoding.Default.GetByteCount(value.ToString())) Then
i = i + 1
End If
i = i + 1
Next
Return i
End Function