我正在写一个字符串替换函数,用实际的图像位置来替换微笑,但由于所有嵌套的if,代码将变得非常大和混乱,但我想不出更有效的方法来编写代码。
Public Function exchangeSmilies(ByVal postString As String) As String
Dim ChangedString = postString
ChangedString.ToLower()
If ChangedString.Contains(":)") Then
ChangedString = ChangedString.Replace(":)", GetSmilieMapPath("smile.gif"))
If ChangedString.Contains(":p") Then
ChangedString = ChangedString.Replace(":p", GetSmilieMapPath("toungue.gif"))
If ChangedString.Contains(";)") Then
ChangedString = ChangedString.Replace(";)", GetSmilieMapPath("wink.gif"))
If ChangedString.Contains("<3") Then
ChangedString = ChangedString.Replace("<3", GetSmilieMapPath("heart.gif"))
End If
End If
End If
End If
Return ChangedString
End Function
Public Function GetSmilieMapPath(ByVal SmilieImage As String) As String
GetSmilieMapPath = "<img src=" & Chr(34) & "../Images/Smilies/" & SmilieImage & Chr(34) & ">"
Return GetSmilieMapPath
End Function发布于 2011-06-02 22:21:55
请改用字典。
在类级别创建如下所示的字典:
Dim dictionary As New Dictionary(Of String, String)
dictionary.Add(":)", GetSmiliePath("smile.gif"))
dictionary.Add(":p", GetSmiliePath("tongue.gif"))
...在exchangeSmilies函数中,您可以遍历此字典以替换任何出现的内容:
...
For Each pair In dictionary
If ChangedString.Contains(pair.Key) Then
ChangedString = ChangedString.Replace(pair.Key, pair.Value)
End If
Next
Return ChangedString发布于 2011-06-02 22:13:17
有一个包含每个表情符号和替换表情的Dictionary(Of String, String)。使用循环进行实际的替换。
发布于 2011-06-02 22:15:13
我已经很长时间没有做vb.net了,所以我不能给你确切的代码。但基本思想是这样的:创建一个包含符号键(“:)”和文件名的值("smile.gif")的映射。将其设置为静态成员变量。
https://stackoverflow.com/questions/6215685
复制相似问题