Foxtable(狐表)用户栏目专家坐堂 → 连续相同字符串筛选问题


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

主题:连续相同字符串筛选问题

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
连续相同字符串筛选问题  发帖心情 Post By:2023/10/4 23:11:00 [只看该作者]

连续相同字符串筛选配对问题,如何做成下图中红线精确配对???第二列的数据是标准的


图片点击可在新窗口打开查看此主题相关图片如下:169.jpg
图片点击可在新窗口打开查看


下面代码出现多个值?

Dim str As String = "投标单位|投标报价|项目负责人|质量标准|工期|投标保证金|信用分|资信分值|技术分值|开标备注|评标备注|标书备注|联合体成员|序号"
Dim stt As String = "投标单位名称|投标总价(元)|项目经理|质量标准|工期(天)| 投标保证金缴纳情况|信用分值|资信分值|技术分值|开标备注|评标备注|标书备注|联合体成员|序号"

For Each st As String In stt.Split("|")
    If st > "" Then
        For i As Integer = 0 To st.Length - 2
            Dim s As String = st.Substring(i, 2) '连续二个字符相同
            For Each nm As String In str.Split("|")
                If nm.Contains(s) Then
                    'nr("接收表列名") = nm '自动选出列名
                    Output.Show(nm)
                End If
            Next
        Next
    End If
Next


图片点击可在新窗口打开查看此主题相关图片如下:1696432.jpg
图片点击可在新窗口打开查看


[此贴子已经被作者于2023/10/4 23:33:55编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

Dim str As String = "投标单位|投标报价|项目负责人|质量标准|工期|投标保证金|信用分|资信分值|技术分值|开标备注|评标备注|标书备注|联合体成员|序号"
Dim stt As String = "投标单位名称|投标总价(元)|项目经理|质量标准|工期(天)|投标保证金缴纳情况|信用分值|资信分值|技术分值|开标备注|评标备注|标书备注|联合体成员|序号"
Dim dict As New Dictionary(Of String, String)
For Each st As String In stt.Split("|")
    If st > "" Then
        For Each nm As String In str.Split("|")
            If dict.ContainsKey(st) AndAlso dict(st).Split("|")(0).Length >= nm.Length Then Continue For
            For i As Integer = nm.Length To 2 Step - 1
                If dict.ContainsKey(st) AndAlso dict(st).Split("|")(0).Length >= i Then Continue For
                Dim b As Boolean = False
                For k As Integer = 0 To nm.Length - i
                    Dim nmm As String = nm.Substring(k, i)
                    If st.Contains(nmm) Then
                        If dict.ContainsKey(st) Then
                            If dict(st).Split("|")(0).Length < nmm.Length Then
                                dict(st) = nmm & "|" & nm
                            End If 
                        Else
                            dict.Add(st, nmm & "|" & nm)
                        End If
                        'nr("接收表列名") = nm '自动选出列名
                        '                        Output.Show(st & " => " & nm & " : " & k & "," & i & "=" & nmm)
                        b = True
                        Exit For
                    End If
                Next
                If b Then
                    Exit For
                End If 
            Next
        Next
    End If
Next

For Each key As String In dict.Keys
    Output.Show(key & "=>" & dict(key))
Next 

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


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

老师2楼代码得出的值还是有重复值,我只需要一个值,怎么办?


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

我测试没有问题,哪个值重复了?

 回到顶部