簡體   English   中英

我如何從包含零的列表中獲取最后一個數字?

[英]How can i get the last number from a List including the zeros?

int lastpadnum = padnumbers.Count;
int nextpadnum = lastpadnum + 1;

如果“列表”填充號中的最后一個數字為191,則lastpadnum中的值為191,nextpadnum中的值為192。

但是,如果在列表padnumbers中,最后一個數字是“ 0000000000191”,那么在lastpadnum中,我只會看到191。但是我想獲取整數“ 0000000000191”並將其作為int值。

然后我嘗試了這個:

int lastpadnum = Convert.ToInt32(padnumbers[padnumbers.Count - 1]);
int nextpadnum = lastpadnum + 1;

但是,即使列表中的最后一個數字是“ 0000000000191”,我也只能得到191。

最后,我想計算下一個數字,但不確定如何操作。例如,如果最后一個數字是191,則下一個數字將是192。但是如果最后一個數字是00191,則下一個數字應該是00192,如果最后一個數字是“ 0000000000191”,那么下一個數字應該是“ 0000000000192”。

“ 0000000000191”不是整數。 它是一個字符串。 int類型的變量永遠不會包含前導零,也永遠不會包含任何格式信息。 當您打印出來時,它會隱式或顯式地轉換為字符串。 因為它實際上是以二進制格式保存的,所以無法從字面上打印int。

如果要以零開頭,則需要轉換為字符串。 如果要從某個具有前導零的原始值中獲得前導零,則需要保留該值; 轉換為int會自動消除所有格式信息。

話雖如此,如果您有一個包含191的變量,並且想要將其顯示為0000000000191,則只需將其格式化為字符串,例如

int someValue = 191;
int valueString = someValue.ToString("0000000000000");
Console.Writeline(valueString);

如果您嘗試維護字符串格式的序列,則可以將其轉換為int,然后遞增,然后轉換回去,如下所示:

string lastpadstring = padnumbers[padnumbers.Count - 1];
int lastpadnum = Convert.ToInt32(lastpadstring);
int nextpadnum = lastpadnum + 1;
string nextpadstring = nextpadnum.ToString(new String('0', lastpadstring.Length));

191和00191是相同的數字。 看來您要執行的操作是采用一個帶有零填充數字的字符串,在該數字上加一個,然后生成一個具有相同長度的新的零填充字符串。 查看下面的代碼,看看它是否滿足您的要求:

string lastpadnum = "0000000000191";
int desiredLength = lastpadnum.Length;
int nextnum = Convert.ToInt32(lastpadnum) + 1;
string nextpadnum = nextnum.ToString().PadLeft(desiredLength, '0');
Console.WriteLine(nextpadnum);

// Output:
// 0000000000192

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM