VB.net函数返回不一致的结果

时间:2013-10-10 11:33:46

标签: vb.net

我创建了一个简单的函数,用于从另一个字符串中删除一串字符,并将其替换为用户想要的字符串(或者没有字符串作为默认字符串)

Private Function RemoveString(scontainer As String, Optional rcontainer As String = "", Optional rstring As String = "") As String
    Dim container As String = scontainer
    Dim tcontainer As String

    If InStr(container, rcontainer) <> 0 Then
        Do While (InStr(container, rcontainer) <> 0)
            tcontainer = Microsoft.VisualBasic.Left(container, InStr(container, rcontainer) - 1)
            tcontainer = tcontainer & rstring & Microsoft.VisualBasic.Right(container, (Len(container) - (InStr(container, rcontainer) + 2)))
            container = tcontainer
        Loop

        RemoveString = container 'return modded string
    Else
        RemoveString = scontainer 'return string as is
    End If
End Function

问题是: 虽然这被认为是一般使用函数,但我真的需要关注2个不同的字符串

20% 安培;

该功能完美适用于%20的情况,但它为放大器留下了分号;串。任何想法为什么会这样?

1 个答案:

答案 0 :(得分:1)

我帮你忙吗? 您希望将字符串中的某个char序列替换为另一个char序列,或者只删除它。

如果是这种情况你可以使用String.Replace(oldValue As String,newValue As String)As String

Dim startString as String = "%20 amp;"
Dim resultString as String = startString.Replace("%20 ",String.Empty)
resultString = resultString.Replace(";",String.Empty)

在这些行之后,resultString将是“amp”