2012-04-24 21 views
11

Ben bir dize "2.36" olduğunu varsayalım ve bunu "236" Ben örnekte Trim fonksiyonunu kullanılan String C# nokta karakterini kaldırın

trimmedAmount değeri hala
String amount = "2.36"; 
String trimmedAmount = amount.Trim('.'); 

olduğunu

kesilmiş istiyorum 2.36

amount.Trim('6'); ne zaman sorunsuz çalışır, ancak '.'

Neyi yanlış yapıyorum?

Çok teşekkürler Alkış

cevap

40

Tirimleme bir dize başlangıç ​​veya bitiş karakterleri kaldırıyor.

Sadece hiçbir şey replacing o karakter yapılabilir ., kaldırmaya çalışıyorsanız:

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

Burada yapın: http://msdn.microsoft.com/en-us/library/system .string.replace.aspx – RvdK

3

String.Trim lider ve sonlarındaki boşluk kaldırır. Sen String.Replace()

Beğen kullanmak gerekir:

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

'' Trim', dizide geçen tüm mevcut ve sonlanan karakterleri kesecek bir 'char []' parametresi alabilir. – Oded

+0

Yani yapabilir. Bu gelecekte faydalı olacaktır. – Ste

+0

E-posta: http://msdn.microsoft.com/en-us/library/d4tt83f9.aspx – Ste

4

İki yolları:

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

Trim (örneğin varsayılan olarak uzay gibi) öncü ve trailings karakterleri kaldırmak için yapmaktır.

5

Eğer basamak ama her şeyi kaldırmak isterseniz:

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

ya:

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

Alternatif yanıtlar için – Pinchy

+0

+1 numaralı yardım için teşekkürler, ancak her ikisi de kabul edilenlerden daha yavaştır. – Yogu

+0

@Yogu: Evet, yalnızca belirli bir karakteri kaldırmak istiyorsanız, "Değiştir" daha hızlıdır. – Guffa