2010-04-27 33 views
9

Đây là mã của tôi:Trim cuối cùng "" delimiter của một chuỗi trong 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 

Với điều này là có được một dấu phẩy ở cuối chuỗi. Nhưng nếu tôi làm

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

tất cả dấu phẩy sẽ bị xóa.

Làm cách nào để giữ tất cả dấu phẩy và chỉ xóa dấu phẩy cuối cùng?

+0

Vui lòng sử dụng định dạng mã trong câu hỏi của bạn (101.010 điều trong hộp công cụ định dạng của bạn :)) – Ando

Trả lời

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

hoặc

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

cảm ơn, làm việc hoàn hảo – gerfe

2

Bạn có thể tránh các Trim/thêm nhân vật nếu bạn đặt một dấu phân cách trong vòng

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

tôi đã gỡ bỏ việc kiểm tra Nếu từ bài viết của bạn bởi vì nó thực sự là chậm . Thời gian chạy là đủ thông minh để tối ưu hóa việc chuyển nhượng như thế này, nhưng nó phải đánh giá điều kiện if trên mỗi lần lặp lại. –

+0

Ah, mẹo hay, cảm ơn –

0
temp = temp.TrimEnd() 

này Trims các dấu không gian từ một chuỗi.

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

Điều đó sẽ làm điều đó và tôi nghĩ là cách dễ nhất.

+0

Điều này chỉ hoạt động nếu ký tự trước dấu cuối cùng khác với dấu phẩy. Trong nhiều trường hợp (ví dụ: trong tệp .csv), có rất nhiều dấu phẩy lặp lại ở cuối tệp. Tôi thích 'temp = temp.Trim(). Remove (temp.Length - 1)' cũng đơn giản trong việc đọc. –

1

Chức năng Trim() có thông số Char() (mảng tĩnh ký tự) trên đó, bạn không cần phải vượt qua Char một cách rõ ràng.

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

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

sẽ sản xuất sản lượng

"Hello ^_^ ^_^" 

Các đa tham số .Trim() loại bỏ các ký tự được quy định từ cả hai đầu và cuối của chuỗi. Nếu bạn chỉ muốn cắt đầu hoặc cuối, hãy sử dụng tương ứng .TrimStart() hoặc .TrimEnd().

0

Tôi biết rằng một chút kỳ quặc, nhưng tôi thấy làm việc này cho tôi:

Visual Basic:

Mỗi lần: mystring = "hôm nay, Tôi thích đi ra ngoài,,,," (ít hơn năm dấu phẩy và không gian)

mystring.Trim.TrimEnd(",").Trim.TrimEnd(",").Trim.TrimEnd(",").Trim.TrimEnd(",").Trim.TrimEnd(",") 
Các vấn đề liên quan