Saya memiliki nomor yang harus dikonversi menjadi string. Pertama saya menggunakan ini:
Key = i.ToString();
Tapi saya menyadari itu sedang diurutkan dalam urutan yang aneh dan jadi saya perlu menambahkannya dengan nol. Bagaimana saya bisa melakukan ini?
c#
string
string-formatting
Mandy Weston
sumber
sumber
Jawaban:
Agak sederhana:
D
singkatan dari "angka desimal",2
untuk jumlah digit yang akan dicetak.sumber
string.Format("D2", value)
Anda akan mendapatkanD2
dalam output. ini tidak berhasil. Kita harus menggunakan"{0:00}"
dalam hal ini.string.Format("{0:D2}", value)
sebagai gantinya. Hanya mengatakanstring.Format("D2", ...)
tidak akan menggantikan apa pun, apa pun karena Anda tidak memiliki pengganti.value
int. Jikavalue
ganda, misalnya, harusstring.Format("{0:00}", value)
Lihat Pemformatan string dalam C # untuk beberapa contoh penggunaan String.Format
Sebenarnya contoh yang lebih baik dari format int
atau gunakan Interpolasi String :
sumber
Jika Anda ingin menjaganya tetap lebar, misalnya 10 digit, lakukan seperti ini
Ganti dengan digit sebanyak yang Anda suka.
i = 123
akan menghasilkanKey = "0000000123"
.sumber
Karena belum ada yang menyebutkan ini, jika Anda menggunakan C # versi 6 atau lebih tinggi (yaitu Visual Studio 2015) maka Anda dapat menggunakan interpolasi string untuk menyederhanakan kode Anda. Jadi alih-alih menggunakan
string.Format(...)
, Anda bisa melakukan ini:sumber
menggunakan:
Lihat Int32.ToString (MSDN), dan Standard Numeric Format Strings (MSDN).
Atau gunakan
String.PadLeft
. Sebagai contoh,Akan menghasilkan
0000000321
. PadahalString.PadLeft
tidak akan berfungsi untuk angka negatif.Lihat String.PadLeft (MSDN).
sumber
Biasanya String.Format ("format", objek) lebih disukai daripada objek.ToString ("format"). Karena itu,
lebih disukai daripada,
sumber
Mencoba:
Namun secara pribadi, saya akan melihat apakah Anda tidak dapat mengurutkan pada integer secara langsung, daripada representasi string.
sumber
Untuk string interpolasi:
sumber
Di sini saya ingin tidak saya membatasi dalam 4 digit seperti jika itu 1 itu harus ditampilkan sebagai 0001, jika 11 itu harus ditampilkan sebagai 0011 .. Di bawah ini adalah kode.
Saya menerapkan kode ini untuk menghasilkan tanda terima uang no.
sumber
Output = "00001"
EDIT: Diubah agar sesuai dengan jumlah PadLeft
sumber