2009-05-21 5 views

Répondre

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

Battez-moi par 17.3745853 secondes +1 –

+2

En fait 36 ​​secondes, d'où je suis debout. ;) –

+1

Si simple ???????????????????? – Gold

19

Cela devrait faire l'affaire:

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

Tout en une ligne. Cool +1 – ichiban

4

Pour être clair, vous voulez remplacer chaque trait d'union (-) avec blanc/rien. Si vous le remplaciez par un retour arrière, cela effacerait le caractère précédent!

Cela conduirait à: 123-456-7 ==> 12457

Sean a brillant la bonne réponse.

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

Pour .Net 1.0 String.Empty ne prendra pas plus d'espace sur le tas, mais « » nécessite le stockage sur le tas et son adresse sur la pile résultant en plus de code d'assemblage. Par conséquent, String.Empty est plus rapide que "".

Egalement String.Empty signifie aucune faute de frappe. Cliquez sur le lien What is the difference between String.Empty and “”.

+0

Je ne crois pas que ce soit vrai. String.Empty est la constante pour "". Le compilateur pointe tous les littéraux "" vers String.Empty. Peu importe combien de "" littéraux vous avez. – AMissico

+0

Merci AMissico ... Je viens de vérifier le tas pour le cadre 3.5 et vous avez raison, "" et String.Empty pointent vers le même emplacement. Mais, pour 1.0, il y aura de l'espace alloué sur le tas pour "". J'ai édité la réponse en conséquence :) –

-2

Tout de la méthode ci-dessus je suppose est bien alors que si vous êtes dans une opération complexe de mieux penser à regex c'est vraiment génial.

-1

Utilisez String.Empty ou null au lieu de "" car "" créera un objet dans la mémoire pour chaque occurrence tandis que d'autres réutiliseront le même objet.

+6

Juste pas vrai, voir http://stackoverflow.com/questions/263191/in-c-should-i-use-string-empty-or-string-empty-ou – weston

+0

Correct ! Pardon. J'ai eu une mauvaise image. Merci de me corriger. – Darshana

Questions connexes