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大侠分就给你啦
展开
 我来答
murphylau
推荐于2018-05-01 · TA获得超过435个赞
知道小有建树答主
回答量:547
采纳率:0%
帮助的人:848万
展开全部
上面思路是正确的, 用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
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孤狼剑士
2008-04-22 · TA获得超过427个赞
知道答主
回答量:120
采纳率:0%
帮助的人:41.2万
展开全部
中文、日文、乱码等字符的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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
溥姮斯飞莲
2019-06-27 · TA获得超过1026个赞
知道答主
回答量:1825
采纳率:100%
帮助的人:10万
展开全部
遍历每一个字符,看是全角还是半角的。半角的字符总数
+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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不再使用了0000
2013-12-15 · TA获得超过863个赞
知道小有建树答主
回答量:133
采纳率:0%
帮助的人:156万
展开全部
Dim int As Integer
int = System.Text.Encoding.Default.GetBytes(TextBox1.Text).Length
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
joforn
2008-04-22 · TA获得超过112个赞
知道小有建树答主
回答量:169
采纳率:0%
帮助的人:236万
展开全部
LenB(StrConv("AAA-中文", vbFromUnicode))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式