怎样把一个int整数转换成int[]数组
如int i=1234 变成 int[]{1,2,3,4} 忘各位前辈指点,谢谢~
int[] a=i.ToString().ToArray().Select(o=>int.Perse(o)).ToArray();
[解决办法]
int[] arr = i.ToString().Select(s => int.Parse(s.ToString())).ToArray();
[解决办法]
1
[解决办法]
如果不允许把整数转成字符串的情况下实现,还有什么方法么?
那自己用求余 法去弄。这个不写了。
[解决办法]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int i = 1234;
int[] result = Enumerable.Range(1, i > 0 ? (int)Math.Log10((double)i) + 1 : (i == 0 ? 1 : (int)Math.Log10((double)-i) + 1))
.Select(x => (int)((i % Math.Pow(10.0, (double)x) - i % Math.Pow(10.0, (double)x - 1)) / Math.Pow(10.0, (double)(x - 1))))
.Reverse().ToArray();
Console.WriteLine(string.Join(", ", result.Select(x => x.ToString()).ToArray()));
}
}
}
1, 2, 3, 4
[解决办法]
如果不允许把整数转成字符串的情况下实现,还有什么方法么?
那自己用求余 法去弄。这个不写了。
前辈,不是很明白呢,能不能详细点呀,谢谢了
你自己看吧,哪个简单
int i = 1234;
List<int> list = new List<int>();
while (i > 0)
{
list.Add(i % 10);
i = i / 10;
}
int[] ae = list.OrderBy(o => o).ToArray();
int[] af = i.ToString().ToArray().Select(o => int.Parse(o.ToString())).ToArray();
[解决办法]
把8楼的List换成Stack, 这样不需要重排序了, 代码如下:
private static int[] ConvertIntToIntArray(int val)
{
Stack<int> result = new Stack<int>();
do
{
result.Push(val % 10);
val /= 10;
}
while (val > 0);
return result.ToArray();
}
用LINQ虽然简洁, 但是字符串转换没有必要. 直接除数取余更快, 耗资源更少.