删除结尾的文本(多个字符)

问题描述 投票:0回答:2

在VB.NET中,我想从变量末尾删除整个字符串,而不是单个字符。最好的方法是什么?

例如,我的字符串文本如下:杰克离开时口袋里只有3.00,但回来时只有2.00

我想从文本结尾而不是中间删除.00。我希望结果是:杰克离开时口袋里只有3.00,但回来时只有2

如果我将TrimEnd与“。”一起使用,和“ 0”,我将得到如下不正确的修剪:有事->某事(不正确)任何0->任何(不正确)

我只希望从结尾删除“ .00”,而不是“。”,“。0”或“ 0”。

可以轻松完成吗?

vb.net trim
2个回答
1
投票

如果要从较长的字符串的末尾删除较短的字符串,则需要先找出较短的字符串是否实际上出现在较长的字符串的末尾。您可以使用EndsWith方法执行此操作。如果确实出现,则可以使用SubString方法将其删除。

这里是一个函数,将从长字符串的末尾删除所有短字符串。如果较短的字符串未出现在较长的字符串的末尾,则将返回整个较长的字符串。

Function RemoveFromEnd(fullString As String, removeString As String) As String
    If fullString.EndsWith(removeString) Then Return fullString.Substring(0, fullString.Length - removeString.Length)
    Return fullString
End Function

您可以这样调用函数:

Dim someString = "Jack left with 3.00 in his pocket but returned with only 2.00"
somestring = RemoveFromEnd(someString, ".00")

这将避免您在使用TrimEnd时遇到的两个问题。


0
投票

我希望这会对您有所帮助

要在您的STRING的结尾处删除:

Private Function removeFromEnd(completeString As String, searchedString As String)
    If Len(completeString) > 0 Then
        Return completeString.Remove(completeString.LastIndexOf(searchedString))
    End If
    Return ""
End Function

如果要在字符串中删除或替换搜索字符串的特定索引:

    Private Function replaceFromStringInSpecificIndex(completeString As String, searchedString As String, replaceString As String, whichElement As Integer)
        Dim result As String = ""

        If Len(completeString) > 0 Then
            Dim elements() As String = completeString.Replace(searchedString, Char.MinValue).Split(Char.MinValue)
            For i As Integer = 0 To elements.Length - 1
                If Len(elements(i)) > 0 Then
                    result &= elements(i)
                    result &= IIf(i = whichElement, replaceString, searchedString)
                End If
            Next
        End If

        Return result

    End Function

用法:

要删除的结尾字符串:

Dim removedFromEnd As String = removeFromEnd("Jack left with 3.00 in his pocket but returned with only 2.00", ".00")

删除/替换所搜索字符串的特定索引(此处将第三元素替换为OPSSSSS…。)

Dim replacedSpecificIndex As String = replaceFromStringInSpecificIndex("Jack left with 3.00 in his pocket but returned with only 2.00 Or again Jack left with 3.00 in his pocket but returned with only 2.00", ".00", " OPSSSSSSS Replaced ", 2)

要从字符串中删除从结尾开始的特定数量的字符

Private Function removeFromEndXChars(completeString As String, nrChars As Integer)
    If Len(completeString) > nrChars Then
        Return completeString.Remove(completeString.Length - nrChars)
    End If
    Return ""
End Function

用法:

 Dim sfinal As String = removeFromEndXChars("Jack left with 3.00 in his pocket but returned with only 2.00", ".00".Length)
© www.soinside.com 2019 - 2024. All rights reserved.