Ich habe eine Nummer, die ich in eine Zeichenfolge konvertieren muss. Zuerst habe ich das benutzt:
Key = i.ToString();
Aber mir ist klar, dass es in einer seltsamen Reihenfolge sortiert wird, und deshalb muss ich es mit Nullen auffüllen. Wie könnte ich das machen?
c#
string
string-formatting
Mandy Weston
quelle
quelle
Antworten:
Ziemlich einfach:
D
steht für "Dezimalzahl",2
für die Anzahl der zu druckenden Ziffern.quelle
string.Format("D2", value)
SieD2
in der Ausgabe. das funktioniert nicht Wir müssen"{0:00}"
in diesem Fall verwenden.string.Format("{0:D2}", value)
stattdessen verwenden. Nur zu sagenstring.Format("D2", ...)
, ersetzt nichts, egal was passiert, da Sie keinen Platzhalter haben.value
ein int ist. Wennvalue
es sich zum Beispiel um ein Double handelt, muss esstring.Format("{0:00}", value)
Siehe Zeichenfolgenformatierung in C # einige Anwendungsbeispiele für String.Format
Eigentlich ein besseres Beispiel für die Formatierung von int
oder verwenden Sie String Interpolation :
quelle
Wenn Sie die Breite beibehalten möchten, z. B. 10 Stellen, gehen Sie folgendermaßen vor
Ersetzen Sie durch so viele Ziffern, wie Sie möchten.
i = 123
wird dann ergebenKey = "0000000123"
.quelle
Da dies noch niemand erwähnt hat, können Sie bei Verwendung von C # Version 6 oder höher (z. B. Visual Studio 2015) die Zeichenfolgeninterpolation verwenden , um Ihren Code zu vereinfachen. Anstatt zu verwenden
string.Format(...)
, können Sie dies einfach tun:quelle
verwenden:
Siehe Int32.ToString (MSDN) und Standard Numeric Format Strings (MSDN).
Oder verwenden
String.PadLeft
. Beispielsweise,Würde dazu führen
0000000321
. ObwohlString.PadLeft
würde für negative Zahlen nicht.Siehe String.PadLeft (MSDN).
quelle
Normalerweise ist String.Format ("Format", Objekt) Objekt.ToString ("Format") vorzuziehen. Deshalb,
ist vorzuziehen,
quelle
Versuchen:
Persönlich würde ich jedoch sehen, ob Sie nicht direkt nach der Ganzzahl sortieren können, sondern nach der Zeichenfolgendarstellung.
quelle
Für interpolierte Zeichenfolgen:
quelle
Hier möchte ich, dass mein Nein auf 4 Ziffern begrenzt wird. Wenn es 1 ist, sollte es als 0001 angezeigt werden. Wenn es 11 ist, sollte es als 0011 angezeigt werden. Unten ist der Code.
Ich habe diesen Code implementiert, um die Geldquittungsnummer zu generieren.
quelle
Ausgabe = "00001"
BEARBEITEN: Geändert, um dem PadLeft-Betrag zu entsprechen
quelle