C # int in String mit aufgefüllten Nullen konvertieren?


Antworten:


706

i.ToString().PadLeft(4, '0')- Okay, funktioniert aber nicht für negative Zahlen
i.ToString("0000");- explizite Form
i.ToString("D4");- Kurzform-Formatbezeichner
$"{i:0000}";- String-Interpolation (C # 6.0+)


27
i.ToString (). PadLeft (4, '0') funktioniert NICHT für negative Zahlen, zum Beispiel (-5). PadLeft (4, '0') ist "00-5"
Antonio Bakula

5
So zeigen Sie eine Zeichenfolge mit fester Länge an. ??
Mark Macneil Bikeio


2
dieser Weg funktionierte für mich String.Format ("{0: D4}", Nummer);
Arthur Melo

14
Die Verwendung der Verknüpfung im String-Format funktioniert auch, z. B. $ "{i: D4}";
JamesSugrue

274
i.ToString("D4");

Siehe MSDN zu Formatspezifizierern.


4
dieser Weg funktionierte für mich String.Format ("{0: D4}", Nummer);
Arthur Melo

118

Hier ist ein gutes Beispiel:

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


57

String-Interpolation im C # 6.0-Stil

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

Dieser sieht sehr schön aus. Gute Möglichkeit zu vermeiden$"some text {x.ToStrig("D4")} after text"
Bruno Miquelin




2

.NET hat eine einfache Funktion, um dies in der StringKlasse zu tun . Benutz einfach:

.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"  

Dies funktioniert, wenn Sie eine feste Zeichenfolgenlänge mit einer sich ändernden Zahl haben. Danke dafür! :)
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

Hier möchte ich meine Nummer mit 4 Ziffern auffüllen. Wenn es beispielsweise 1 ist, sollte es als 0001 angezeigt werden, wenn es 11 ist, sollte es als 0011 angezeigt werden.

Unten ist der Code, der dies erreicht:

reciptno=1; // Pass only integer.

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

TxtRecNo.Text = formatted; // Output=0001

Ich habe diesen Code implementiert, um eine Geldquittungsnummer für eine PDF-Datei zu generieren.


1
Warum bearbeiten Sie meine Antwort nur auf Großbuchstaben oder Satzstruktur.
Ist

@Unheilig Ich bin neu im Stackoverflow. Ich denke, mein Punkt wird reduziert, wenn du meine Antwort bearbeitest.
Saktiprasad Swain

3
Wie Sie hervorheben, sind Sie neu in dieser Community und mit dem Bearbeitungssystem nicht vertraut. Sie haben keine Punkte aus der Bearbeitung verloren, die von der Community vorgeschlagen und genehmigt wurde. Die vorgenommenen Änderungen haben Ihre Antwort
Security Hound

1
Die Abstimmung ist eigentlich anonym. Die Abwertung wurde wegen der schlechten Grammatik abgegeben. Hätte gestimmt, wenn Sie den Bearbeitungsvorschlag akzeptiert hätten
Security Hound


-5

So füllen Sie int idie Zeichenfolge auf int x, wenn beide negativ sein können:

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

2
Unnötig verwirrend, besonders wenn es eine sehr einfache Lösung gibt.
29.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.