2012-04-24 34 views
11

Giả sử tôi có một chuỗi "2,36" và tôi muốn nó tỉa tới "236"Di dot ký tự từ một chuỗi C#

tôi đã sử dụng chức năng Trim trong ví dụ

String amount = "2.36"; 
String trimmedAmount = amount.Trim('.'); 

Giá trị của trimmedAmount vẫn là 2.36

Khi amount.Trim('6'); nó hoạt động hoàn hảo nhưng với '.'

Tôi đang làm gì sai?

Thanks a lot Cheers

Trả lời

40

Cắt được xoá các ký tự từ khi bắt đầu hoặc kết thúc của một chuỗi.

Bạn chỉ đơn giản là cố gắng để loại bỏ các ., có thể được thực hiện bằng cách replacing nhân vật mà không có gì:

string cleanAmount = amount.Replace(".", string.Empty); 
+0

Tôi làm ở đây: http://msdn.microsoft.com/en-us/library/system .string.replace.aspx – RvdK

3

String.Trim loại bỏ hàng đầu và dấu khoảng trắng. Bạn cần phải sử dụng String.Replace()

Giống như:

string amount = "2.36"; 
string newAmount = amount.Replace(".", ""); 
+1

'Trim' có thể lấy tham số' char [] 'sẽ cắt tất cả các ký tự đầu và cuối có trong mảng được truyền trong mảng. – Oded

+0

Vì vậy, nó có thể. Điều đó sẽ hữu ích trong tương lai. – Ste

+0

Liên kết cho hậu thế: http://msdn.microsoft.com/en-us/library/d4tt83f9.aspx – Ste

4

Hai cách:

string sRaw = "5.32"; 
string sClean = sRaw.Replace(".", ""); 

Trim là làm để loại bỏ hàng đầu và trailings ký tự (ví dụ như không gian theo mặc định).

5

Nếu bạn muốn loại bỏ tất cả mọi thứ nhưng các chữ số:

String trimmedAmount = new String(amount.Where(Char.IsDigit).ToArray()); 

hay:

String trimmedAmount = Regex.Replace(amount, @"\D+", String.Empty); 
+0

Cảm ơn sự giúp đỡ – Pinchy

+0

+1 để cung cấp câu trả lời thay thế, nhưng cả hai đều chậm hơn câu trả lời được chấp nhận. – Yogu

+0

@Yogu: Có, nếu bạn chỉ muốn xóa một ký tự cụ thể, 'Thay thế' nhanh hơn. – Guffa

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