2012-04-24 13 views
11

Supongamos que tengo una cadena "2,36" y quiero que recorta a "236"Retire carácter de punto de una cadena de C#

Solía ​​función Trim en el ejemplo

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

El valor de trimmedAmount sigue siendo 2.36

Cuando amount.Trim('6'); funciona perfectamente pero con '.'

¿Qué estoy haciendo mal?

Muchas gracias Saludos

Respuesta

40

Recorte está removiendo caracteres desde el inicio o el final de una cadena.

Usted está simplemente tratando de eliminar el ., que puede ser realizado por replacing ese personaje sin nada:

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

que hago aquí: http://msdn.microsoft.com/en-us/library/system .string.replace.aspx – RvdK

3

String.Trim quita espacio inicial y final. Es necesario utilizar String.Replace()

igual:

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

'Trim' puede tomar un parámetro' char [] 'que recortará todos los caracteres iniciales y finales que estén presentes en el conjunto pasado. – Oded

+0

Así que puede. Eso será útil en el futuro. – Ste

+0

Enlace para la posteridad: http://msdn.microsoft.com/en-us/library/d4tt83f9.aspx – Ste

4

dos maneras:

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

Trim es hacer para eliminar líderes y trailings caracteres (tales como el espacio por defecto).

5

Si desea eliminar todo menos los dígitos:

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

o:

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

Gracias por la ayuda – Pinchy

+0

+1 por proporcionar una respuesta alternativa, pero ambas son más lentas que la aceptada. – Yogu

+0

@Yogu: Sí, si solo quiere eliminar un carácter específico, 'Reemplazar 'es más rápido. – Guffa

Cuestiones relacionadas