VB.net 如何获得中文字符串的长度?
VB.net2005中想获取中文的长度(其实是日文,不过都一样)中文是占两格的但是我获取Len("中文")返回值却是2而不是4请问如何让其获得实际长度呢?而且我需要对混合...
VB.net 2005 中想获取 中文的长度 (其实是日文,不过都一样)
中文是占两格的 但是我获取 Len("中文") 返回值却是 2 而不是4
请问如何让其获得实际长度呢?
而且我需要对混合字符串 如 “AAA-中文” 来进行获得长度(期望值是8,Len实际是6)
请问该用何种函数?
感谢所有回答者。
LenB ,VB.net2005没有这个函数阿
murphylau大侠 LenC那个函数 里面怎么有 Text1.text ?
jyh_jack大侠给了我一份根据 murphylau大侠 的函数改的代码,可以运行。
也很感谢 孤狼剑士 大侠 提供思路。
最接近的代码是murphylau大侠分就给你啦 展开
中文是占两格的 但是我获取 Len("中文") 返回值却是 2 而不是4
请问如何让其获得实际长度呢?
而且我需要对混合字符串 如 “AAA-中文” 来进行获得长度(期望值是8,Len实际是6)
请问该用何种函数?
感谢所有回答者。
LenB ,VB.net2005没有这个函数阿
murphylau大侠 LenC那个函数 里面怎么有 Text1.text ?
jyh_jack大侠给了我一份根据 murphylau大侠 的函数改的代码,可以运行。
也很感谢 孤狼剑士 大侠 提供思路。
最接近的代码是murphylau大侠分就给你啦 展开
展开全部
上面思路是正确的, 用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
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
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
中文、日文、乱码等字符的ascii码是负数,只有标准的字母、数字、符号的ascii码是正数,你可以根据这个判断,例如:
Private Sub Command1_Click()
Dim n As Integer
Dim StrLen As Integer
For n = 1 To Len(Text1.Text)
If Asc(Mid(Text1.Text, n, 1)) < 0 Then StrLen = StrLen + 2 Else StrLen = StrLen + 1
Next n
MsgBox StrLen
End Sub
Private Sub Command1_Click()
Dim n As Integer
Dim StrLen As Integer
For n = 1 To Len(Text1.Text)
If Asc(Mid(Text1.Text, n, 1)) < 0 Then StrLen = StrLen + 2 Else StrLen = StrLen + 1
Next n
MsgBox StrLen
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
遍历每一个字符,看是全角还是半角的。半角的字符总数
+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
+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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Dim int As Integer
int = System.Text.Encoding.Default.GetBytes(TextBox1.Text).Length
int = System.Text.Encoding.Default.GetBytes(TextBox1.Text).Length
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
LenB(StrConv("AAA-中文", vbFromUnicode))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询