我正在使用TrimEnd從字符串末尾刪除某些字符。起初我以爲這會工作:使用 char的奇怪修剪行爲
Dim strNew As String = "Employees\Sickness Entitlement.rpt"
Dim strTrim As String = "Sickness Entitlement.rpt"
Console.WriteLine(strNew.TrimEnd(strTrim)) '<- Doesn't work
但TrimEnd僅適用於字符或單個字符的字符串數組,所以我想這:
Dim strNew As String = "Employees\Sickness Entitlement.rpt"
Dim strTrim As String = "Sickness Entitlement.rpt"
Dim arrChars As Char()
ReDim arrChars(strTrim.Length)
For i As Integer = 0 To strTrim.Length - 1
arrChars(i) = strTrim.Substring(i, 1)
Next
Console.WriteLine(strNew.TrimEnd(arrChars)) '<- Employees\
,直到我在斜線增加這工作得很好:
Dim strNew As String = "Employees\Sickness Entitlement.rpt"
Dim strTrim As String = "\Sickness Entitlement.rpt"
Dim arrChars As Char()
ReDim arrChars(strTrim.Length)
For i As Integer = 0 To strTrim.Length - 1
arrChars(i) = strTrim.Substring(i, 1)
Next
Console.WriteLine(strNew.TrimEnd(arrChars)) '<- Employ
這就是現在輸出:應用
這是莫名其妙的設計?我覺得很奇怪。我的問題的解決辦法是做類似的事情:
If strNew.EndsWith(strTrim) Then
Console.WriteLine(strNew.Substring(0, strNew.LastIndexOf(strTrim)))
End If
這是既簡單又有效,但上面發生了什麼?
作爲一個潛在的死衚衕,如果你這樣做來獲取你的文件所在的目錄,那麼有更簡單(更強大)的方法... – 2011-04-18 09:47:46
你從字符串到char數組的轉換也是非常複雜的。您可以簡單地將Dim char寫爲Char()= strTrim.ToCharArray()'。在這種情況下不重要。 – 2011-04-18 09:54:46