删除尾随文本(多个字符)
Remove Trailing Text (Multiple Characters)
在 VB.NET 中,我想从变量的末尾删除整个字符串,而不是单个字符。执行此操作的最佳方法是什么?
比如我的字符串文本如下:
杰克口袋里带着 3.00 离开,回来时只带了 2.00
我想从文本末尾而不是中间删除 .00。我希望结果是:
杰克口袋里带着 3.00 离开,但只带回 2
如果我将 TrimEnd 与“.”一起使用和“0”,我会得到如下不正确的修剪:
某物。 -> 某事(不正确)
任意 0 -> 任意(不正确)
我只想从末尾删除“.00”,而不是“.”、“.0”或“0”。
这容易做到吗?
希望对您有所帮助
要在字符串末尾删除:
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")
到remove/replace搜索字符串的特定索引(这里第三个元素替换为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)
如果要从较长字符串的末尾删除较短的字符串,您需要先确定较短的字符串是否确实出现在较长字符串的末尾。您可以使用 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
时遇到的两个问题。
在 VB.NET 中,我想从变量的末尾删除整个字符串,而不是单个字符。执行此操作的最佳方法是什么?
比如我的字符串文本如下:
杰克口袋里带着 3.00 离开,回来时只带了 2.00
我想从文本末尾而不是中间删除 .00。我希望结果是:
杰克口袋里带着 3.00 离开,但只带回 2
如果我将 TrimEnd 与“.”一起使用和“0”,我会得到如下不正确的修剪:
某物。 -> 某事(不正确)
任意 0 -> 任意(不正确)
我只想从末尾删除“.00”,而不是“.”、“.0”或“0”。
这容易做到吗?
希望对您有所帮助
要在字符串末尾删除:
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")
到remove/replace搜索字符串的特定索引(这里第三个元素替换为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)
如果要从较长字符串的末尾删除较短的字符串,您需要先确定较短的字符串是否确实出现在较长字符串的末尾。您可以使用 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
时遇到的两个问题。