2013-07-06 49 views
5

Tôi có chuỗi như sauTại sao string.TrimEnd không loại bỏ chỉ ký tự cuối cùng trong chuỗi

2,44,AAA,BBB,1,0,,, 

Vì vậy, bây giờ tôi muốn loại bỏ chỉ dấu phẩy cuối cùng trong chuỗi trên. Vì vậy, tôi muốn đầu ra như

2,44,AAA,BBB,1,0,, 

tôi quyết định sử dụng TrimeEnd như sau

str.ToString.TrimEnd(',') 

Nhưng nó loại bỏ tất cả các dấu phẩy sau 0. Vì vậy, tôi nhận được kết quả như sau

2,44,AAA,BBB,1,0 

Tại sao nó loại bỏ tất cả 3 dấu phẩy sau 0? Tôi chỉ cần xóa ký tự cuối cùng trong chuỗi

Trả lời

30

Tại sao lại xóa tất cả 3 dấu phẩy sau 0?

Bởi vì đó là những gì nó documented làm:

giá trị Return:
Chuỗi còn lại sau khi tất cả các lần xuất hiện của các nhân vật trong tham số trimChars được loại bỏ từ ngày kết thúc của chuỗi hiện tại .

Nếu bạn chỉ muốn nhân vật cuối cùng loại bỏ, bạn có thể sử dụng:

if (str.EndsWith(",")) 
{ 
    str = str.Substring(0, str.Length - 1); 
} 

Hoặc tương đương:

if (str.EndsWith(",")) 
{ 
    str = str.Remove(str.Length - 1); 
} 
+15

@ DannyBeckett: Làm ơn đừng bỏ niềng răng ra khỏi mã của tôi. Phong cách mã hóa cá nhân của tôi (và cái đã được thực thi trong mọi công ty tôi đã làm việc) là * luôn luôn * bao gồm niềng răng cho các vòng lặp, các câu lệnh 'if' vv. khi nó thực sự khác nhau. –

+0

Không sao, và cảm ơn lời khuyên. –

+0

Rất cám ơn. Nó làm việc – Happy

4

Đó là mong đợi. String.TrimEnd Loại bỏ tất cả lần xuất hiện trailing một tập hợp các ký tự được quy định trong một mảng từ các đối tượng String hiện

Phương pháp TrimEnd(char[] trimChars) loại bỏ từ chuỗi hiện tại tất cả các ký tự dấu mà trong tham số trimChars. Các hoạt động cắt dừng lại khi nhân vật đầu tiên mà không có trong trimChars được gặp ở phần cuối của chuỗi

Sử dụng này để thay thế:

str = str.EndsWith(",") ? str.Substring(0, str.Length - 1) : str; 
1

Bạn có thể sử dụng này:

string s = "2,44,AAA,BBB,1,0,,,"; 
s = s.Remove(s.Length-1, 1); 
+0

Điều đó sẽ xóa * bất kỳ ký tự * nào, bất kể đó có phải là dấu phẩy hay không. –

+0

Cụ thể cho trường hợp này-> Nhưng câu hỏi là để loại bỏ các dấu phẩy đến cuối cùng .. – Vishal

+0

Tôi không biết liệu có thể bạn hiểu lầm ... giả sử chuỗi là: 'string s =" 2,44, AAA, BBB , 1,0 ,,, 123', điều gì sẽ xảy ra? –

Các vấn đề liên quan