将整数转换为数组数字
问题描述:
我想知道在C#中是否有方法将整数转换为数组数组,以便我可以单独对每个数字执行(数学)运算。将整数转换为数组数字
实施例:我需要用户输入即123
,456
然后该程序创建三个要素{1,2,3}
,{4,5,6}
的两个阵列的整数。
答
关闭我的头顶:
int i = 123;
var digits = i.ToString().Select(t=>int.Parse(t.ToString())).ToArray();
答
您可以创建这样的阵列(或List
)避免如下字符串操作:
int x = 123;
List<int> digits = new List<int>();
while(x > 0)
{
int digit;
x = Math.DivRem(x, 10, out digit);
digits.Add(digit);
}
digits.Reverse();
替代,而无需使用List
和List.Reverse
:
int x = 456;
int[] digits = new int[1 + (int)Math.Log10(x)];
for (int i = digits.Length - 1; i >= 0; i--)
{
int digit;
x = Math.DivRem(x, 10, out digit);
digits[i] = digit;
}
还有使用ToString
另一种方式:
int x = 123;
int[] digits = Array.ConvertAll(x.ToString("0").ToCharArray(), ch => ch - '0');
答
您可以使用此,而不是转换为字符串:
var digits = new List<int>();
var integer = 123456;
while (integer > 0)
{
digits.Add(integer % 10);
integer /= 10;
}
digits.Reverse();
您是否尝试过任何东西,有什么想法?你将得到一个字符串,所以在你确认它是一个整数后,你可以遍历每个字符(数字)并将其转换为一个整数。 – Hammerstein 2014-10-08 19:23:01