首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码压缩/效率

代码压缩/效率
EN

Stack Overflow用户
提问于 2011-06-02 22:10:46
回答 3查看 261关注 0票数 1

我正在写一个字符串替换函数,用实际的图像位置来替换微笑,但由于所有嵌套的if,代码将变得非常大和混乱,但我想不出更有效的方法来编写代码。

代码语言:javascript
复制
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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-02 22:21:55

请改用字典。

在类级别创建如下所示的字典:

代码语言:javascript
复制
Dim dictionary As New Dictionary(Of String, String)
dictionary.Add(":)", GetSmiliePath("smile.gif"))
dictionary.Add(":p", GetSmiliePath("tongue.gif"))
...

在exchangeSmilies函数中,您可以遍历此字典以替换任何出现的内容:

代码语言:javascript
复制
...
For Each pair In dictionary
    If ChangedString.Contains(pair.Key) Then
        ChangedString = ChangedString.Replace(pair.Key, pair.Value)
    End If
Next
Return ChangedString
票数 4
EN

Stack Overflow用户

发布于 2011-06-02 22:13:17

有一个包含每个表情符号和替换表情的Dictionary(Of String, String)。使用循环进行实际的替换。

票数 3
EN

Stack Overflow用户

发布于 2011-06-02 22:15:13

我已经很长时间没有做vb.net了,所以我不能给你确切的代码。但基本思想是这样的:创建一个包含符号键(“:)”和文件名的值("smile.gif")的映射。将其设置为静态成员变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6215685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档