Foxtable(狐表)用户栏目专家坐堂 → [求助]从一个字符串中提取特定字符的问题


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

主题:[求助]从一个字符串中提取特定字符的问题

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/9 11:43:00 [显示全部帖子]

Dim s As String  = "一二三四五AAA00000六七八"
Dim i1 As Integer
Dim i2 As Integer
For i As Integer = 0 To s.Length -3
    If s(i) = s(i+1) AndAlso s(i) = s(i+2) Then
        i1 = i
        Exit For
    End If
Next
For i As Integer = 0 To s.Length -5
    If s(i) = s(i+1) AndAlso s(i) = s(i+2) AndAlso s(i) = s(i+3) AndAlso s(i) = s(i+4) Then
        i2 = i
        Exit For
    End If
Next
If i2 > i1 Then
   messagebox.show(s.SubString(i1,8))
End If
[此贴子已经被作者于2011-8-9 11:47:20编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/9 11:46:00 [显示全部帖子]

可以看看.net的正则表达式,会更简单点。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/9 11:50:00 [显示全部帖子]

这样简单点:

 

Dim s As String  = "一二三四五AAA00000六七八"
For i As Integer = 0 To s.Length -3
    If s(i) = s(i+1) AndAlso s(i) = s(i+2) Then
        If s(i+3) = s(i+4) AndAlso s(i+3) = s(i+5) AndAlso s(i+3) = s(i+6) AndAlso s(i+3) = s(i+7) Then
           messagebox.show(s.SubString(i,8))
            Exit For
        End If
    End If
Next


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/9 12:27:00 [显示全部帖子]

Dim s As String  = "一二三四五AAA00000六七八"
For i As Integer = 0 To s.Length - 8
    If Char.IsLetter(s(i)) AndAlso  s(i) = s(i+1) AndAlso s(i) = s(i+2) Then
        If Char.IsDigit(s(i+3)) AndAlso  s(i+3) = s(i+4) AndAlso s(i+3) = s(i+5) AndAlso s(i+3) = s(i+6) AndAlso s(i+3) = s(i+7) Then
           messagebox.show(s.SubString(i,8))
            Exit For
        End If
    End If
Next

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/9 13:51:00 [显示全部帖子]

Dim s As String = "一二三四五AAA00000六七八"
Dim str As String
For i As Integer = 1 To s.Length-8
    str = Mid(s,i,8)
    If Char.IsLetter(Left(str,3)) And Char.IsNumber(Right(str,5)) Then
        Output.Show(str)
        Exit For
    End If
Next

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/9 16:02:00 [显示全部帖子]

楼主自己的代码很好。

 回到顶部