Foxtable(狐表)用户栏目专家坐堂 → 在集合中如何确定包含某个字符的字段位置?


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

主题:在集合中如何确定包含某个字符的字段位置?

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


加好友 发短信
等级:超级版主 帖子:107304 积分:545781 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/10/12 9:08:00 [只看该作者]

这种规律没有办法使用普通方法处理,需要使用AI分词,已经远远超出我们的能力了

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2023/10/12 9:31:00 [只看该作者]

温州市域铁路线瑞安段土建工程施工SG5标段施工SG5标段 在这个字符串中每隔3个或5个插入一个@字符,如何做
变成:温州市@域铁路@线瑞安@段土建@工程施@工SG@5标段@施工S@G5标@段
[此贴子已经被作者于2023/10/12 9:32:08编辑过]

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


加好友 发短信
等级:超级版主 帖子:107304 积分:545781 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/10/12 10:24:00 [只看该作者]

Dim s As String = "温州市域铁路线瑞安段土建工程施工SG5标段施工SG5标段"
Dim lst As New List(Of String)
For i As Integer = 0 To s.Length - 1 Step 3
    If i + 3 < s.Length - 1 Then
        lst.Add(s.Substring(i, 3))
    Else
        lst.Add(s.Substring(i))
    End If 
Next

Dim ret As String = String.Join("@", lst.ToArray)
Output.Show(ret)

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2023/10/12 12:14:00 [只看该作者]

蓝老师:
我的需求是下面这个字符串顺序遍历一次,再倒序遍历一次,都加到集合里,然后根据集合相邻相同字符找出来

Dim s As String = "温州市域铁路线瑞安段土建工程施工SG5标段施工SG5标段"
Dim lst As New List(Of String)
For  ii As Integer = 0 To s.Length - 1
    Output.Show(ii)
    nm = ii
Next
  
For i As Integer = 0 To s.Length - 1 Step 7          '需求:::如何把这个7的数字变成ii这个循环,ii为2,3,4...到(s.Length - 1)的一半值 。   2、这个是顺序,倒序时会出错
    If i + 7 < s.Length - 1 Then
        lst.Add(s.Substring(i, 7))
    Else
        lst.Add(s.Substring(i))
    End If
Next

Dim ret As String = String.Join("@", lst.ToArray)
Output.Show(ret)

For  n As Integer = 1 To lst.count
    If lst(n) = lst(n-1)
        msgbox(lst(n))
    End If
Next
1、红色代码出错,错在哪里?

[此贴子已经被作者于2023/10/12 12:29:53编辑过]

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


加好友 发短信
等级:超级版主 帖子:107304 积分:545781 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/10/12 13:34:00 [只看该作者]

1、
For  ii As Integer = 2 To s.Length - 1
    For i As Integer = 0 To s.Length - 1 Step ii  

2、
For  n As Integer = 1 To lst.count - 1


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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2023/10/19 0:34:00 [只看该作者]

老师上面代码是顺序进行,但倒序怎么办?

Dim s As String = "温州市域铁路线瑞安段土建工程施工SG5标段施工SG5标段"

Dim lst As New List(Of String)

For  ii As Integer = 2 To s.Length - 1

    For i As Integer = 0 To s.Length - 1 Step ii

        If i + ii < s.Length - 1 Then

            lst.Add(s.Substring(i, ii))

        Else

            lst.Add(s.Substring(i))

        End If

    Next

Next

Dim ret As String = String.Join("@", lst.ToArray)

Output.Show(ret)

 

For  n As Integer = 1 To lst.count -1

    If lst(n) = lst(n-1)

        msgbox(lst(n))

    End If

Next



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


加好友 发短信
等级:超级版主 帖子:107304 积分:545781 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/10/19 8:24:00 [只看该作者]


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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2023/10/20 17:46:00 [只看该作者]

下面倒序没反应了??
Dim s As String = "温州市域铁路线瑞安段土建工程施工SG5标段施工SG5标段"
Dim lst As New List(Of String)
For  ii As Integer = s.Length - 1 To 2
    For i As Integer = s.Length - 1 To 0 Step -ii
        If i + ii < s.Length - 1 Then
            lst.Add(s.Substring(i, ii))
        Else
            lst.Add(s.Substring(i))
        End If
    Next
Next

Dim ret As String = String.Join("@", lst.ToArray)
Output.Show(ret)

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


加好友 发短信
等级:超级版主 帖子:107304 积分:545781 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/10/21 8:35:00 [只看该作者]

For ii As Integer = s.Length - 1 To 2 Step - 1
    For i As Integer = s.Length - 1 To 0 Step - ii

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2023/10/21 12:51:00 [只看该作者]

Dim s As String = "温州瑞安段土建工程标段标段"
Dim lst As New List(Of String)
For ii As Integer = s.Length - 1 To 2 Step - 1
    For i As Integer = s.Length - 1 To 0 Step - ii
        If i + ii < s.Length - 1 Then
            lst.Add(s.Substring(i, ii))
        Else
            lst.Add(s.Substring(i))
        End If
    Next
Next
Dim ret As String = String.Join("@", lst.ToArray)
Output.Show(ret)

上面代码的结果是:      每次都有一个@

@温州瑞安段土建工程标段标段@

@州瑞安段土建工程标段标段@

@瑞安段土建工程标段标段@

@安段土建工程标段标段@

....

@工程标段标段@瑞安段土建@

@程标段标段@段土建工@温州瑞安@

@标段标段@建工程@安段土@温州瑞@

@段标段@程标@建工@


我需求的结果:

@州瑞@安段@土建@工程@标段@标段

@州瑞安@段土建@工程标@段标段

@州瑞安段@土建工程@标段标段

温州瑞@安段土建工@程标段标段

@州瑞安段土建@工程标段标段



 回到顶部
总数 37 上一页 1 2 3 4 下一页