2009-09-01 10 views
1

Lorsque vous utilisez la méthode garniture () sur un objet de chaîne, vous pouvez passer un tableau de caractères à et il supprime les caractères de votre chaîne, par exemple :Découper une chaîne en utilisant un tableau de caractères en utilisant C#

string strDOB = "1975-12-23  "; 
MessageBox.Show(strDOB.Substring(2).Trim("- ".ToCharArray())); 

Il en résulte est "75-12-23" au lieu du résultat attendu: "751223", pourquoi est-ce?

Bonus question: Lequel aurait plus de frais généraux par rapport à cette ligne (il fait exactement la même chose):

strDOB.Substring(2).Trim().Replace("-", ""); 
+0

À quoi ressemblerait le 1 er janvier 1999 dans le format: 1999-01-01? – AnthonyWJones

+0

Cela dépend de ce que vous en faites. Dans SQL Server, toute chaîne transmise au format AAAA-MM-JJ HH: MM: SS est traduite, par exemple: '1999-01-01 12:00:00' sera le 1er janvier 1999 @ 12h00. Votre localisation n'a pas d'importance dans ce cas. –

Répondre

8

Parce que la fonction garniture trims que les caractères des extrémités de la chaîne.

utilisation Remplacer si vous voulez les éliminer partout ...

+0

D'où le nom "trim" :-) +1 –

0

Trim supprime uniquement les caractères du début et la fin de la chaîne. Les caractères internes '-' ne seront pas supprimés, pas plus que les espaces internes. Vous voulez Replace().

1

De MSDN:

Renvoie une nouvelle chaîne dans laquelle tous les leader et arrière occurrences d'un ensemble de caractères spécifié de l'objet String en cours sont supprimés.

Je suppose que c'est explicite.

0

D'autres personnes ont répondu correctement Le découpage ne découpe que les caractères du début et de la fin de la chaîne. Utilisation: -

Console.WriteLine(strDOB.Substring(2, 8).Replace("-","")) 

Cela suppose un format fixe dans la chaîne d'origine. En ce qui concerne la performance, à moins que vous n'en fassiez un million, je ne m'en soucierais pas.

0

Le découpage ne se retire que du début et de la fin. Utilisez Remplacer si vous souhaitez supprimer de la chaîne.

Questions connexes