4

なんらかの理由で、5桁の数字が2つあります。

次のコードは簡単なアイデアを提供します。

string s = "00001"; // Initially stored somewhere.
//Operation start
string id = DateTime.Now.ToString("yy") + DateTime.Now.AddYears(-1).ToString("yy") + s;
//Operation end

//Increment the value of s by 1. i.e 00001 to 00002

これは、 sの値をintに変換して1ずつインクリメントすることで簡単に実行できますが、結局、sのインクリメントされた値も5桁で格納する必要があるため、「00002」になります。

これは私に苦痛を与えると思います...

4

5 に答える 5

11

使用する

string s = "00001";
int number = Convert.ToInt32(s);
number += 1;
string str = number.ToString("D5");

少なくとも5桁を取得します。

「D」(または10進数)形式指定子

必要に応じて、数値の左側にゼロが埋め込まれ、精度指定子によって指定された桁数が生成されます。精度指定子が指定されていない場合、デフォルトは、先行ゼロなしで整数を表すために必要な最小値です。

于 2013-03-14T12:29:47.307 に答える
6

これは私にとってはうまくいくようです。

string s = "00001";
int i = Int32.Parse(s);
i++;
s = i.ToString("D" + s.Length);
于 2013-03-14T12:30:35.990 に答える
1

intですから、を5桁に変換する方法を知りたいと思いますstring

あなたはこれを行うことができます:

int i = 1;
string s = i.ToString("D5");
//s = "00001"

ここにはたくさんのフォーマット例があります。

于 2013-03-14T12:30:46.447 に答える
0

String.Format()これを達成するために使用します。

string str = String.Format({0:#####}, s);

ここを見てください。

于 2013-03-14T12:31:15.310 に答える
0

これは、次の関数を使用してPadLeft機能します。

int i = 1; // Initially stored somewhere.
//Operation start
string id = DateTime.Now.ToString("yy") + DateTime.Now.AddYears(-1).ToString("yy") + i.ToString().PadLeft(5, '0');
//Operation end
于 2013-03-14T12:33:01.810 に答える