我有一个函数,它获得了number一定数量的函数,digits并且应该返回一个数字的数组的数组(或数组列表)digits.
样本输入1:
12345,6输出:"012345"
输入样本2:123456,6
输出:"123456"
样本输入3:1,8
样本输出:"00000001"
我目前正在这样做
public int[] digitArrayFromNumber(int number, int digits){
int[] result = number.ToString().PadLeft(digits, '0').ToArray().Select(
ch => Convert.ToInt32(ch.ToString())
).ToArray();
return result;
}
Run Code Online (Sandbox Code Playgroud)
但这看起来很丑陋,在我看来可能有更好的可读方式来做到这一点.
你可以使用数学:
int[] arr = new int[digits];
for (int i = 0; i < digits; i++)
{
arr[digits - i - 1] = number % 10;
number /= 10;
}
Run Code Online (Sandbox Code Playgroud)
使用模数运算符检索最后一位数的值,然后除以十来切断最后一位数.