Foxtable(狐表)用户栏目专家坐堂 → 怎样判断字符串中有多少个汉字、英文字母和数字,还有空格?(笨办法搞定了)


  共有20857人关注过本帖树形打印复制链接

主题:怎样判断字符串中有多少个汉字、英文字母和数字,还有空格?(笨办法搞定了)

帅哥哟,离线,有人找我吗?
mr725
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
怎样判断字符串中有多少个汉字、英文字母和数字,还有空格?(笨办法搞定了)  发帖心情 Post By:2010/3/16 13:48:00 [只看该作者]

【谢谢大家了 Thanks 39】
判断这个字符串中有几个汉字、几个空格、几个英文字母、几个数字?
代码怎么写?
[此贴子已经被作者于2010-3-16 14:40:56编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/3/16 15:08:00 [只看该作者]

呵呵,啥办法啊?


 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/3/16 15:20:00 [只看该作者]

太笨了,呵呵~  :  不知有没有其他的问题?
dim z as string = "谢谢大家了 Thanks 39 aaaThanks 3333339     99"
dim az as string = "abcdefjhijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ"
dim nb as string = "0123456789"
dim n,n0,n1,n2 as integer
for i as integer = 0 to z.length-1
    if az.contains(z(i))
        n=n+1
    elseif nb.contains(z(i))
        n0=n0+1
    elseif z(i)= " "
        n1=n1+1
    else
        n2=n2+1
    end if
    output.show(z(i))
    if i = 6
        exit for
    end if
next
output.show("字母: " & n & " 数字: " & n0 & "  空格: " & n1 & "  汉字:  " & n2 & "  " & z.length)

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/3/16 15:37:00 [只看该作者]

呵呵,是有一点笨拙了,可以判断asc码,小于0的汉字,剩下的用Char提供的判断方法,判断是字母还是数字。


 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/3/16 15:54:00 [只看该作者]

以下是引用狐狸爸爸在2010-3-16 15:37:00的发言:

呵呵,是有一点笨拙了,可以判断asc码,小于0的汉字,剩下的用Char提供的判断方法,判断是字母还是数字。

谢谢啊~     还是要有个判断“汉字”的方法就好了~~

[此贴子已经被作者于2010-3-16 16:30:31编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
baoxyang
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3313 积分:23146 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2010/3/16 16:06:00 [只看该作者]

        dim s as string = "谢谢大家了 Thanks 39 aaaThanks 3333339     99"
         For i as integer = 1 to s.length           
              dim tt as integer = ASC(Mid(s,i,1)) 

               if  tt >= 65 and tt <= 90 then '为小写英文字母个数
                   n1 = n1 + 1
               end if
               if  tt >= 97 and tt <= 122 then '为大写英文字母个数
                   n2 = n2 + 1
               end if
                if  tt >= 48 and tt <= 57 then '为0~9数字个数
                   n3 = n3 + 1
               end if
                if  tt = 32 then '为空字符个数
                   n4 = n4 + 1
               end if

               if  tt < 0 then '为汉字个数
                   n5 = n5 + 1
               end if
        Next
output.show("字母: " & n1+n2 & " 数字: " & n3 & "  空格: " & n4 & "  汉字:  " & n5 & "  " & z.len

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/3/16 16:20:00 [只看该作者]

如果用asc判断,标点符号岂不都成了汉字?

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/3/16 16:35:00 [只看该作者]

因为只有汉字是两个字节,其他字符都是一个字节,其实我只想计算字符串中共有多少字节?

 回到顶部
帅哥哟,离线,有人找我吗?
lxl
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2010/3/16 17:21:00 [只看该作者]

以下是引用mr725在2010-3-16 16:35:00的发言:
因为只有汉字是两个字节,其他字符都是一个字节,其实我只想计算字符串中共有多少字节?

那这个简单
Dim s As String = "123 大家 好45"
Dim bs() As byte = System.Text.Encoding.Default.GetBytes(s)
MessageBox.Show(bs.Length)


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2010/3/16 17:32:00 [只看该作者]

呵呵,yangming总版主自动列宽的要求有解了!


 回到顶部
总数 14 1 2 下一页