2010-12-09 21 views
0

J'ai un champ1 qui ne devrait pas être plus de 7 caractères. Les caractères restants dans field1 doivent être remplis avec des zéros en tête.traitant des zéros en tête dans C#

Si field1 est 1, alors il doit être converti en 0000001. Si field1 est 21 alors il devrait être converti en 0000021.

Comment puis-je faire cela en C#. S'il vous plaît aider.

+0

Champ1 est une zone de texte? N'importe quel formateur de style printf vous permettra de spécifier des 0 en tête et de générer une chaîne, que vous pouvez coller dans la zone de texte – Robert

Répondre

5

Si vous avez un numéro et que vous voulez une représentation de chaîne de 7 chiffres, assez simple.

1.ToString("0000000"); 

Supposons que vous avez une chaîne particulière et que vous voulez pad à 7 caractères, et les personnages se trouvent être même caractère, vous pouvez le faire aussi.

1.ToString().PadLeft(7, '0'); 
0

Une autre solution serait d'utiliser Standard Numeric Format Strings comme ceci:

5.ToString("D7") 

Et pour éviter d'avoir des entiers avec plus de 7 caractères, modulo peut être utilisé comme ceci:

(123456789 % 10000000).ToString("D7") 

Modulo devrait être plus rapide que la découpe de caractères supplémentaires dans la chaîne résultante.

Ainsi, chaque entier produira une chaîne de 7 caractères remplie de zéros.