一般来说最多三个重复,如何删除二个留一个就OK
Dim str As String = "台州市域铁路S2线土建施工Ⅱ标段土建施工Ⅱ标段土建施工Ⅱ标段A" '目标是删除"土建施工Ⅱ标段",不能用Replace
Dim lst As New List(Of String)
For m As Integer = 0 To str.Length - 1 '按顺序删除递增字符
Dim ms As String = str.SubString(m)
For ii As Integer = 1 To Math.Floor(ms.Length /2) '步长值最大值为整个字符串的50%
For i As Integer = 0 To ms.Length - 1 Step ii
If i + ii < ms.Length - 1 Then
lst.Add(ms.Substring(i, ii))
Else
lst.Add(ms.Substring(i))
End If
Next
Next
Next
Dim dic As New Dictionary(Of Integer,String)
For n As Integer = 1 To lst.Count -1
If lst(n) = lst(n - 1) Then '遍历从集合中查找如果找到连续相同字符串
If dic.ContainsKey(lst(n).Length) = False And dic.ContainsValue(lst(n)) = False Then '不重复的字符串
dic.Add(lst(n).Length,lst(n))
End If
End If
Next
'''另一种最大值
If dic.Count > 0 Then '判断字典是否包含数据,因为dic.Count = 0 代码会出错
Dim key As Integer = dic.Keys.Max
Dim t As String = dic(key)
Output.Show(t) '显示"标段土建施工Ⅱ"
Output.Show(str.Remove(str.IndexOf(t),t.Length)) '显示"台州市域铁路S2线土建施工Ⅱ标段土建施工Ⅱ标段A"
End If
如何再一次删除 "标段土建施工Ⅱ" 这个字符串??
[此贴子已经被作者于2023/11/1 23:31:24编辑过]