我试图存储代表4位字符串的整数,其中一些字符串在开头有0.当我在控制台中写出这些值时,前导0被剥离,我可以阻止这种情况发生吗?我阅读了文档,但看不到任何可以防止这种情况发生的事情.到目前为止,这是我的代码:
class Fitness
{
Random random = new Random();
int[] myArray = new int[15];
int[] myArray2 = new int[6];
int[] numbers = new int[6];
int randomNumber;
public void setup()
{
for (int i = 0; i < 6; i++)
{
do
{
randomNumber = random.Next(1, 16);
}
while (numbers.Contains(randomNumber));
numbers[i] = randomNumber;
}
Array.Sort(numbers);
foreach (int i in numbers)
{
Console.WriteLine(i);
}
Console.WriteLine("-----------------");
Console.WriteLine("-----------------");
myArray[0] = 0001;
myArray[1] = 0010;
myArray[2] = 0011;
myArray[3] = 0100;
myArray[4] = 0101;
myArray[5] = 0110;
myArray[6] = 0111;
myArray[7] = 1000;
myArray[8] = 1001;
myArray[9] = 1010;
myArray[10] = 1011;
myArray[11] = 1100;
myArray[12] = 1101;
myArray[13] = 1110;
myArray[14] = 1111;
for (int i = 0; i < 6; i++)
{
myArray2[i] = myArray[numbers[i]-1];
}
foreach (int i in myArray2)
{
Console.WriteLine(i);
}
}
}
Run Code Online (Sandbox Code Playgroud)
Int32没有前导零但是string可以有.您需要应用正确的格式.您可以在以下位置使用小数("D")格式说明符ToString:
foreach (int i in myArray2)
{
Console.WriteLine(i.ToString("d4"));
}
Run Code Online (Sandbox Code Playgroud)
精度说明符表示结果字符串中所需的最小位数.如果需要,数字用左边的零填充,以产生精度说明符给出的位数.如果未指定精度说明符,则缺省值是表示不带前导零的整数所需的最小值.
尝试
Console.WriteLine(i.ToString("D4"));
Run Code Online (Sandbox Code Playgroud)
阅读有关标准数字格式字符串的更多信息...
这与此问题有关C#将int转换为带填充零的字符串?
你可以用int数组做你想做的事情,当你显示格式如上所述.