首页 > 解决方案 > 将 int 数组合并为单个 int

问题描述

我想将一个整数数组组合成一个整数值。所以我有以下代码将数组组合成一个值。

int[] array = { 5, 6, 2, 4 };
int combine = 0;

for (int i = 0; i < array.Length; i++)
{
    combine += array[i] * Convert.ToInt32(Math.Pow(10, array.Length-i-1));
}

这个产量组合 = 5624。这是正确的。

我的问题是我的数组不是 0-9 的形式。所以我的数组可能是 {51,62,23,44}

int[] array = { 51, 62, 23, 44 };
int combine = 0;

for (int i = 0; i < array.Length; i++)
{
    combine += array[i] * Convert.ToInt32(Math.Pow(10, array.Length-i-1));
}

产生组合为 574774,而不是 51622344。我将如何纠正这个问题?

标签: c#int

解决方案


请执行下列操作:

var number = int.Parse(string.Join("", array));

解释:

string.Join将采用 type 的任何枚举T,调用ToString()每个成员并将它们连接到具有指定分隔符的单个字符串中。

一旦你有一个代表你的号码的字符串,你只需解析它来获取号码本身。

当然这是不安全的,根据您可能的输入,这可能会失败:{1, 4, -5, 4 }. 一些错误检测int.TryParse可能是解决这个问题的最好方法,这个例子只是为了理解这个想法。


推荐阅读