繁体   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