C#は整数をパディングゼロで文字列に変換しますか?


回答:


706

i.ToString().PadLeft(4, '0')-わかりましたが、負の数では機能しません
i.ToString("0000");-明示的な形式
i.ToString("D4");-短い形式の書式指定子
$"{i:0000}";-文字列補間(C#6.0+)


27
i.ToString()。PadLeft(4、 '0')は負の数では機能しません。たとえば(-5).PadLeft(4、 '0')は "00-5"になります
Antonio Bakula

5
固定長の文字列を表示する方法。??
Mark Macneil Bikeio 2014年


2
この方法は私のために働きましたString.Format( "{0:D4}"、number);
Arthur Melo 2017年

14
文字列形式のショートカットを使用しても機能します。
JamesSugrue 2017

274
i.ToString("D4");

フォーマット指定子については、MSDNを参照してください。


4
この方法は私のために働きましたString.Format( "{0:D4}"、number);
Arthur Melo 2017年

118

ここに良い例があります:

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




4

イージーピージー

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

3
なぜあなたが反対票を投じたのかわからない、それが機能し、
運用上の


2

.NETには、Stringクラスでそれを実行する簡単な機能があります。ただ使用する:

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

これは、数値が変化する固定長の文字列がある場合に機能します。これをありがとう!:)
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

ここでは、4桁で番号を埋めたいと思います。たとえば、1の場合は0001と表示され、11の場合は0011と表示されます。

以下は、これを実現するコードです。

reciptno=1; // Pass only integer.

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

TxtRecNo.Text = formatted; // Output=0001

このコードを実装して、PDFファイルの入金番号を生成しました。


1
なぜあなたは大文字や文の構造だけに私の答えを編集するのですか?それは必要ですか?開発者は文の構造ではないコードに懸念を抱くべきです
saktiprasad swain

@Unheilig私はstackoverflowを初めて使用します。私の回答を編集すると、ポイントが減るようです
saktiprasad swain 2017年

3
あなたが指摘するように、あなたはこのコミュニティに不慣れで編集システムに不慣れです。コミュニティによって提案され承認された編集からポイントを失うことはありません。行われた編集は実際にあなたの答えを大幅に改善しました
Security Hound

1
投票は実際には匿名です。文法が不十分なため、反対票が出されました。あなたが編集提案を受け入れていたら賛成票を投じたでしょう
Security Hound


-5

int i文字列の長さに一致するようにパディングするにはint x、両方が負になる可能性がある場合:

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

2
特に非常に単純なソリューションがある場合、不必要に混乱する。
2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.