积极答复者
求处理字符串中取得通用字符匹配的字符的思路

问题
-
问题如下:
现在有两个字符串
分别是 1. 很雪白的*有很*火焰
2. 很雪白的星火有很大的火焰
然后我要将第一个 * 通配符匹配到的 星火 ,及第二个 * 通配符匹配到 大的
给存入数组里面。
目前小弟先将这个问题变简单一点
我先把字符串拆得更简洁
1. 很雪白的*
2. 很雪白的星火
然后一样将 * 通配符存进数组 以下是我编写的代码:
Sub ppk1()
Dim 字符 As String = "很雪白的*"
Dim mach As String = "很雪白的星火"
Dim star As New ArrayList
Dim st As String = Nothing
If 字符 = "*" Then
star.Add(mach)
Else
For Each s As String In 字符
If s.Contains("*") Then
star.Add(mach.Substring(st.Length, mach.Length - st.Length))
End If
st += s
Next
End If
Me.RichTextBox1.Text = star(0).ToString
End Sub
只有一个通配符的话 还OK 但两个通配符以上 这里我就稍微头脑卡住了 这边的思路不知该如何设计
我在想有没有办法将字符串拆成如上一样只变的只有一个通配符 和 mach 如上这样问题就比较好解
请各位大大提供点思路给小弟 感激不尽
答案
-
先用String的Split方法分割字符串,然后取出剩余字符串即可:
Sub Main() Dim a As String = "很雪白的*有很*火焰" Dim b As String = "很雪白的星火有很大的火焰" '分离字符串 Dim strings() As String = a.Split(New String() {"*"}, StringSplitOptions.RemoveEmptyEntries) '动态添加* For Each s As String In strings b = b.Replace(s, "*") Next '保存结果 strings = b.Split(New String() {"*"}, StringSplitOptions.RemoveEmptyEntries) '输出 For Each s In strings Console.WriteLine(s) Next End Sub
- 已标记为答案 向恩 2012年8月19日 6:02
全部回复
-
先用String的Split方法分割字符串,然后取出剩余字符串即可:
Sub Main() Dim a As String = "很雪白的*有很*火焰" Dim b As String = "很雪白的星火有很大的火焰" '分离字符串 Dim strings() As String = a.Split(New String() {"*"}, StringSplitOptions.RemoveEmptyEntries) '动态添加* For Each s As String In strings b = b.Replace(s, "*") Next '保存结果 strings = b.Split(New String() {"*"}, StringSplitOptions.RemoveEmptyEntries) '输出 For Each s In strings Console.WriteLine(s) Next End Sub
- 已标记为答案 向恩 2012年8月19日 6:02