2010-04-27 77 views
9

字符串分隔符這是我的代碼:修剪最後的「」在VB.NET

With ad.Tables(2) 
    For i As Integer = 0 To .Rows.Count - 1 
     If .Rows(i)("name") & "" <> "" Then 
      temp &= .Rows(i)("name") & ", " 
     End If 
    Next 
End With 
temp = temp.Trim(",") 
testing &= "&Name=" & temp & vbCrLf 

由於這是在字符串的結尾得到一個逗號。但如果我做

temp = temp.Trim.Trim(",") 

所有的逗號都將被刪除。

如何保留所有逗號並只刪除最後一個?

+0

請使用您的問題的代碼格式(在101010的事情在你關閉格式工具:)) – Ando 2010-04-27 19:47:48

回答

10
temp = temp.Trim().Substring(0, temp.Length - 1) 

temp = temp.Trim().Remove(temp.Length - 1) 
+0

感謝,工作完美 – gerfe 2010-04-27 19:48:57

2

就能避免修剪/多餘的字符,如果你的循環

Dim delimiter as string = "" 
For i As Integer = 0 To .Rows.Count - 1 
    If .Rows(i)("name") & "" <> "" Then 
     temp &= delimiter & .Rows(i)("name") 
     delimiter = "," 
    End If 
Next 
+0

我刪除從您的文章如果檢查,因爲它實際上是慢。運行時足夠聰明,可以像這樣優化分配,但它必須在每次迭代時評估if條件。 – 2010-04-27 20:22:55

+0

啊,很好的提示,謝謝 – 2010-04-27 20:28:35

0
temp = temp.TrimEnd() 

這種修剪尾隨空格從字符串中設置一個分隔符。

7
temp = temp.TrimEnd(CChar(",")) 

這樣做,我認爲是最簡單的方法。

+0

只有在最後一個字符與逗號不同的情況下,這纔有效。在許多情況下(例如在.csv文件中),在文件末尾有很多重複的逗號。我更喜歡'temp = temp.Trim()。Remove(temp.Length - 1)',這在讀取時也很簡單。 – 2017-06-06 09:43:44

1

Trim()函數有一個Char()(靜態數組的字符)參數,你不需要明確地傳遞一個Char

' VB.Net Version 
", Hello ^_^ ^_^ ,,, , ,, ,, ,".Trim({" "c, ","c}) 

//C# version 
", Hello ^_^ ^_^ ,,, , ,, ,, ,".Trim({' ', ','}) 

將產生輸出

"Hello ^_^ ^_^" 

的多參數.Trim()從一開始和字符串的結尾都刪除指定的字符。如果您只想修剪開始或結束,分別使用.TrimStart().TrimEnd()

0

我知道這有點古怪,但我發現這個工作對我來說:

的Visual Basic:

每次:MyString的= 「今天,我愛出門,,,,」(少超過五個逗號和空格)

mystring.Trim.TrimEnd(",").Trim.TrimEnd(",").Trim.TrimEnd(",").Trim.TrimEnd(",").Trim.TrimEnd(",")