以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  在集合中如何确定包含某个字符的字段位置?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188679)

--  作者:ZJZK2018
--  发布时间:2023/10/10 18:41:00
--  在集合中如何确定包含某个字符的字段位置?
在集合中如何确定包含某个字符的字段位置?

Dim nms As New List(Of String)
Names.Add( "HGF")
Names.Add("电冰箱")
Names.Add("洗衣机")
Names.Add( "电视机")
Names.Add( "AAA")
Names.Add( "BBB")
Output.Show(nms.Indexof(nms.Contains("电视"))) 

需求是:找出含有“电视”二个字符的“电视机”字段的位置?

--  作者:有点蓝
--  发布时间:2023/10/10 20:25:00
--  
参考:http://www.foxtable.com/webhelp/topics/0217.htm
--  作者:ZJZK2018
--  发布时间:2023/10/10 20:44:00
--  
教程中是包含“电视机”  ,而我需要的是“电视”二个字符,一楼的代码出错了       
老师请指教??不知道怎么做?

[此贴子已经被作者于2023/10/10 20:50:03编辑过]

--  作者:有点蓝
--  发布时间:2023/10/10 21:03:00
--  
这种只能遍历集合,逐个判断
--  作者:ZJZK2018
--  发布时间:2023/10/10 21:21:00
--  
解决了:
Dim nms As New List(Of String)
nms.Add( "HGF")
nms.Add("电冰箱")
nms.Add("洗衣机")
nms.Add( "电视机")
nms.Add( "AAA")
nms.Add( "BBB")
For Each st As String In nms
    If st.Contains("电视") Then
     msgbox(nms.Indexof(st))
    End If
Next

--  作者:有点蓝
--  发布时间:2023/10/10 21:28:00
--  
For i As Integer = 0 To nms.Count - 1
    If nms(i).Contains("电视") Then
        MsgBox(i)
        Exit For
    End If 
Next 

--  作者:ZJZK2018
--  发布时间:2023/10/10 21:43:00
--  
谢谢
--  作者:ZJZK2018
--  发布时间:2023/10/10 22:07:00
--  
蓝色和红色部分是连续字符串,但字符串长度不一定,如何删除红色部分字符串?谢谢

温州市域铁路S3线附属配套工程(瑞安段)S3线瑞安段土建工程施工SG5标段施工SG5标段      改成:温州市域铁路S3线附属配套工程(瑞安段)S3线瑞安段土建工程施工SG5标段

诸暨市浦阳江治理三期工程施工Ⅰ标(高湖南渠出口至船塘湖段)施工Ⅰ标(高湖南渠出口至船塘湖段)      改成:诸暨市浦阳江治理三期工程施工Ⅰ标(高湖南渠出口至船塘湖段)

(非重点)天台县石梁镇Y010乡道至慈圣村乌坑农村道路项目(甬金衢上高速公路罗汉岭隧道配套工程)(非重点)天台县石梁镇Y010乡道至慈圣村乌坑农村道路项目(甬金衢上高速公路罗汉岭隧道配套工程)施工  改成:(非重点)天台县石梁镇Y010乡道至慈圣村乌坑农村道路项目(甬金衢上高速公路罗汉岭隧道配套工程)施工


[此贴子已经被作者于2023/10/10 22:07:54编辑过]

--  作者:有点蓝
--  发布时间:2023/10/10 22:34:00
--  
有没有什么固定的规律,如果没有,没有办法处理
--  作者:ZJZK2018
--  发布时间:2023/10/12 9:04:00
--  
规律:
要找出的字符串条件如下:
1、二个字符串必须是连续的,如施工SG5标段施工SG5标段
2、字符串长度不确定
3、要找出的字符串长度最小为:2个,最长为整个字符串的一半。


下面代码出,提示字符串长度不够
For i As Integer = 2 To str.Length *0.5 
    For n As Integer = 0 To str.Length Step i
        Dim s As String = str.Substring(n,i)               
    Next
Next