Foxtable(狐表)用户栏目专家坐堂 → 字符串分段?


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

主题:字符串分段?

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/3/23 0:24:00 [显示全部帖子]

Dim aa As String
Dim strRet As String
Dim bb As Byte()
aa = "截取4字符串abcjdj142你好"
bb = Encoding.Default.GetBytes(aa.ToCharArray())
For i As Integer = 0 To aa.Length  Step 10
    strRet = New String(Encoding.Default.GetChars(bb,0,10))
    If aa.IndexOf(strRet) = -1
        strRet = New String(Encoding.Default.GetChars(bb,0,9))
    End If
    Output.show(strRet)
    aa = aa.Replace(strRet,"")
    bb = Encoding.Default.GetBytes(aa.ToCharArray())
Next
Output.show(aa)

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/3/23 0:29:00 [显示全部帖子]

补充说明一下,遇到需要从中文(全角)支付位置需要按字节分割的时候,得到的仅仅是一个问号,所以,这里必须增减一个字节长度来求得整个字符,是增是减楼主自己看着办,如果必须按照一定的字节来截取,中文(全角字符)我暂时还找不到解决办法,还得高手出招!

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/3/23 0:30:00 [显示全部帖子]

呵呵,我也是到处收破烂似的乱捡来的!

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/3/23 1:08:00 [显示全部帖子]

经过这样,10楼的代码有问题,经过测试,修改如下,这样试一试:

 

Dim aa As String
Dim strRet As String
Dim bb As Byte()
aa = "截取4字符串abcjdj142你好中国国,经济ab123aasdffgghsdfghjkl;'qwertyuiop[zxcvbnm,.qwertyuisdfghjk"
bb = Encoding.Default.GetBytes(aa.ToCharArray())
For i As Integer = 0 To 100000  Step 10
    strRet = New String(Encoding.Default.GetChars(bb,0,10))
    If aa.IndexOf(strRet) = -1
        strRet = New String(Encoding.Default.GetChars(bb,0,9))
    End If
    Output.show(strRet)
    aa = aa.Replace(strRet,"")
    bb = Encoding.Default.GetBytes(aa.ToCharArray())
    If System.Text.Encoding.Default.GetBytes(aa).Length <= 10
        Exit For
    End If
Next
Output.show(aa)

[此贴子已经被作者于2012-3-23 1:12:33编辑过]

 回到顶部