String trim 从后面到具体的三个字符

String trim from back to specific three characters

如何 trim 一些字符串,直到我得到三个与 "xyz" 相同的特定字符。准确地说我举个例子:

Dim String1 as String = "GunsAndRosesWelcomeToTheJungle" 
Dim String2 as String = "DontCry"
Dim ResultString as String

我需要删除右边的所有内容,直到我在 String1 中得到 "moc" (reverse "com"),然后添加 string2 得到 ResultString

ResultString 应该是:"GunsAndRosesWelDontCry"

你可以使用String.IndexOfString.Substring从前面开始解决:

Dim String1 as String = "GunsAndRosesWelcomeToTheJungle" 
Dim String2 as String = "DontCry"
Dim index = String1.IndexOf("com")
Dim ResultString as String = String1.Substring(0, index) + String2

编辑:

如果子串输入和字符串由于某种原因都需要反转,我会引入这样的反转字符串函数

Private Function Reverse(Val As String) As String
    Dim charArray As Char() = Val.ToCharArray()
    Array.Reverse(charArray)
    Return New String(charArray)
End Function

然后像这样使用

Dim String1 As String = "GunsAndRosesWelcomeToTheJungle"
Dim String2 As String = "DontCry"        
Dim index = String1.Length - Reverse(String1).IndexOf(Reverse("com")) - ("com").Length
Dim ResultString As String = String1.Substring(0, index) + String2

否则,我们可以使用String.LastIndexOf

Dim String1 as String = "GunsAndRosesWelcomeToTheJungle" 
Dim String2 as String = "DontCry"
Dim index = String1.LastIndexOf("com")
Dim ResultString as String = String1.Substring(0, index) + String2

你可以这样试试,

Dim String1 As String = "GunsAndRosesWelcomeTocomeThecomJunglecom"
Dim String2 As String = "DontCry"
Dim ResultString As String
Dim ar As String() = String1.Split("com")
ResultString = ar(0) & String2

Demo