C # convertir int en chaîne avec des zéros de remplissage?


Réponses:


709

i.ToString().PadLeft(4, '0')- d'accord, mais ne fonctionne pas pour les nombres négatifs
i.ToString("0000");- forme explicite
i.ToString("D4");- spécificateur de format de forme courte
$"{i:0000}";- interpolation de chaîne (C # 6.0+)


28
i.ToString (). PadLeft (4, '0') ne fonctionne PAS pour les nombres négatifs, par exemple (-5) .PadLeft (4, '0') sera "00-5"
Antonio Bakula

5
comment afficher une chaîne de longueur fixe. ??
Mark Macneil Bikeio


2
cela a fonctionné pour moi String.Format ("{0: D4}", nombre);
Arthur Melo

14
L'utilisation du raccourci au format String fonctionne également, par exemple $ "{i: D4}";
JamesSugrue

275
i.ToString("D4");

Voir MSDN sur les spécificateurs de format.


4
cela a fonctionné pour moi String.Format ("{0: D4}", nombre);
Arthur Melo

118

Voici un bon exemple:

int number = 1;
//D4 = pad with 0000
string outputValue = String.Format("{0:D4}", number);
Console.WriteLine(outputValue);//Prints 0001
//OR
outputValue = number.ToString().PadLeft(4, '0');
Console.WriteLine(outputValue);//Prints 0001 as well

66

Vous pouvez utiliser:

int x = 1;
x.ToString("0000");

26
Et une deuxième façon d'utiliser la même chaîne de format:string.Format("{0:0000}", x)
Yodan Tauber

57

Interpolation de chaînes de style C # 6.0

int i = 1;
var str1 = $"{i:D4}";
var str2 = $"{i:0000}";

Celui-ci est très joli. Bon moyen d'éviter$"some text {x.ToStrig("D4")} after text"
Bruno Miquelin


4

Peasy facile

int i = 1;
i.ToString("0###")

3
Je ne sais pas pourquoi vous avez voté, cela fonctionne et répond à la question des opérations
maeneak


2

.NET a une fonction facile à faire dans la Stringclasse. Utilisez simplement:

.ToString().PadLeft(4, '0')  // that will fill your number with 0 on the left, up to 4 length

int i = 1; 
i.toString().PadLeft(4,'0')  // will return "0001"  

Cela fonctionne si vous avez une longueur de chaîne fixe avec un nombre qui change. Merci pour cela! :)
Fen Ignacio

0
int p = 3; // fixed length padding
int n = 55; // number to test

string t = n.ToString("D" + p); // magic     

Console.WriteLine("Hello, world! >> {0}", t);

// outputs: 
// Hello, world! >> 055

0
public static string ToLeadZeros(this int strNum, int num)
{
    var str = strNum.ToString();
    return str.PadLeft(str.Length + num, '0');
}

// var i = 1;
// string num = i.ToLeadZeros(5);

-2

Ici, je veux saisir mon numéro à 4 chiffres. Par exemple, s'il vaut 1, il doit afficher 0001, s'il est 11, il doit afficher 0011.

Voici le code qui accomplit cela:

reciptno=1; // Pass only integer.

string formatted = string.Format("{0:0000}", reciptno);

TxtRecNo.Text = formatted; // Output=0001

J'ai implémenté ce code pour générer un numéro de reçu d'argent pour un fichier PDF.


1
Pourquoi vous modifiez ma réponse juste lettre majuscule ou structure.Is phrase il nécessaire Un développeur doit avoir préoccupation dans le code pas dans la structure de la phrase
saktiprasad Swain

@Unheilig Je suis nouveau sur stackoverflow. Je pense que mon point est réduit lorsque vous avez modifié ma réponse.
saktiprasad swain

3
Comme vous le faites remarquer, vous êtes nouveau dans cette communauté et peu familier avec le système d'édition, vous n'avez perdu aucun point de l'édition qui a été proposée et approuvée par la communauté. Les modifications qui ont été apportées ont en fait considérablement amélioré votre réponse
Security Hound

1
Le vote est en fait anonyme. Le vote négatif a été émis en raison de la mauvaise grammaire. Aurait voté si vous aviez accepté la proposition de modification
Security Hound


-5

Pour remplir int ipour correspondre à la longueur de chaîne de int x, lorsque les deux peuvent être négatifs:

i.ToString().PadLeft((int)Math.Log10(Math.Abs(x < 0 ? x * 10 : x)) + 1, '0')

2
Inutilement déroutant surtout quand il existe une solution très simple.
Juls
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.