2014-10-08 131 views
-1

我想知道在C#中是否有方法将整数转换为数组数组,以便我可以单独对每个数字执行(数学)运算。将整数转换为数组数字

实施例:我需要用户输入即123456 然后该程序创建三个要素{1,2,3}{4,5,6}的两个阵列的整数。

+4

您是否尝试过任何东西,有什么想法?你将得到一个字符串,所以在你确认它是一个整数后,你可以遍历每个字符(数字)并将其转换为一个整数。 – Hammerstein 2014-10-08 19:23:01

回答

7

关闭我的头顶:

int i = 123; 
var digits = i.ToString().Select(t=>int.Parse(t.ToString())).ToArray(); 
3

您可以创建这样的阵列(或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(); 

替代,而无需使用ListList.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'); 
0

您可以使用此,而不是转换为字符串:

var digits = new List<int>(); 
var integer = 123456; 
while (integer > 0) 
{ 
    digits.Add(integer % 10); 
    integer /= 10; 
} 

digits.Reverse();