我正在寫一個字符串替換函數來取代實際圖像位置的微笑,但代碼會因爲所有嵌套的ifs而變得非常大和凌亂,但我不能想到更有效的方法編寫代碼。代碼濃縮/效率
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
你的代碼寫的沒有按」不要做你想做的事。如果一個字符串包含'<3'而不是':',你的代碼將不會做任何替換。首先取消所有這些嵌套。然後,如果它仍然看起來很混亂,請嘗試其他答案建議的字典方法。 – 2011-06-02 14:25:01
在調用String.Replace之前,您不需要執行String.Contains。 – 2011-06-02 14:29:45
+1,我也需要類似的解決方案 – user774411 2011-06-02 20:43:13