2009-05-21 19 views

Respuesta

75
string r = "123-456-7"; 
r = r.Replace("-", ""); 
+1

Batirme por 17.3745853 segundos +1 –

+2

En realidad, 36 segundos, desde donde estoy parado. ;) –

+1

Tan simple ???????????????????? – Gold

19

Esto debe hacer el truco:

String st = "123-456-7".Replace("-",""); 
+2

Todo en una línea. Cool +1 – ichiban

4

Para que quede claro, que desea reemplazar cada guión (-) con blanco/nada. ¡Si lo reemplazó con retroceso, se borraría el carácter anterior!

que llevaría a: 123-456-7 ==> 12457

Sean brillante tiene la respuesta correcta.

16
string r = "123-456-7".Replace("-", String.Empty); 

Para .Net 1.0 String.Empty no tendrá más espacio en el montón, pero "" requiere el almacenamiento en el montón y su dirección en la pila que da como resultado más código de ensamblaje. Por lo tanto, String.Empty es más rápido que "".

También String.Empty significa que no hay errores de tipeo.

Compruebe el enlace What is the difference between String.Empty and “”.

+0

No creo que esto sea cierto. String.Empty es la constante para "". El compilador apunta todos los literales "" a String.Empty. No importa cuántos literales "" tenga. – AMissico

+0

Gracias AMissico ... Acabo de revisar el heap para 3.5 framework y tiene razón, tanto "" como String.Empty apuntan a la misma ubicación. Pero, para 1.0, habrá espacio asignado en el montón para "". He editado la respuesta en consecuencia :) –

-2

Cualquiera de los métodos anteriores supongo que está bien, mientras que si está en una operación compleja, mejor piense en regex, es realmente genial.

-1

Use String.Empty o null en lugar de "" porque "" creará un objeto en la memoria para cada ocurrencia mientras que otros reutilizarán el mismo objeto.

+6

Simplemente no es cierto, consulte http://stackoverflow.com/questions/263191/in-c-should-i-use-string-empty-or-string-empty-or – weston

+0

Corregir ! Lo siento. Tuve una imagen equivocada. Gracias por corregirme. – Darshana

Cuestiones relacionadas