2014-10-08 170 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();