我想知道在C#中是否有方法將整數轉換爲數組數組,以便我可以單獨對每個數字執行(數學)運算。將整數轉換爲數組數字
實施例:我需要用戶輸入即123
,456
然後該程序創建三個要素{1,2,3}
,{4,5,6}
的兩個陣列的整數。
我想知道在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