我想要一个解决方案将输入int 010转换为int {0,1,0}的列表。 下面是我试过的代码,一直工作到0。
Int num = 010;
List<int> listOfInt = new List<int>();
While(num > 0)
listOfInt.Add(num%10);
num / = 10;
我只想拆分输入的int并将其转换为int列表。 LINQ很好,如果这可能是有效的! 谢谢!
答案 0 :(得分:6)
正如其他人已经提到的010
在解析为10
时与int
相同。但是,您可以将您的数字作为字符串来自控制台输入,例如。
string myNumber = "010";
使用LINQ:
可以很容易地在每个角色上进行分割var intList = myNumber.Select(x => Convert.ToInt32(x.ToString())).ToList();
由于每个字符都在int
内部'0'
等于49
,因此您必须将每个字符转换为字符串,然后才能使用ToString
。
答案 1 :(得分:2)
在计算机算术或现实生活中,010和10之间没有区别。零是零。
如果要将数字转换为特定字符串格式并提取字符,请执行与语句相同的步骤:
10.ToString("000").Select(c=>c-48).ToList();
结果是一个数字为0,1,0的列表。
表达式c-48
利用了字符本质上是整数的事实,并且数字从0开始向上。所以48是0,1是49等。
如果输入是一个字符串,例如"10"
,你必须用0填充它,直到达到所需的长度:
"10".PadLeft(3,'0').Select(c=>c-48).ToList()
结果将再次为0,1,0
。
毕竟,如果您只想从paddes字符串中检索字符,则只需要填充,因为String 是IEnumerable。您可以将字符复制到String.ToCharArray()的数组,也可以像以前一样复制到List:
"10".PadLeft(3,'0').ToList()
答案 2 :(得分:1)
Console.WriteLine("Enter a number:")
var input = Console.ReadLine();
List<int> result = input.Select(c => int.Parse(c.ToString())).ToList();
答案 3 :(得分:1)
string num = "010";
List<int> listOfInt = new List<int>();
foreach(char item in num)
{
listOfInt.Add(Convert.ToInt32(item.ToString()));
}