在VB.NET中,我想从变量末尾删除整个字符串,而不是单个字符。最好的方法是什么?
例如,我的字符串文本如下:杰克离开时口袋里只有3.00,但回来时只有2.00
我想从文本结尾而不是中间删除.00。我希望结果是:杰克离开时口袋里只有3.00,但回来时只有2
如果我将TrimEnd与“。”一起使用,和“ 0”,我将得到如下不正确的修剪:有事->某事(不正确)任何0->任何(不正确)
我只希望从结尾删除“ .00”,而不是“。”,“。0”或“ 0”。
可以轻松完成吗?
如果要从较长的字符串的末尾删除较短的字符串,则需要先找出较短的字符串是否实际上出现在较长的字符串的末尾。您可以使用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
时遇到的两个问题。
我希望这会对您有所帮助
要在您的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)