我制作了一个数组,输入一个输入说“12345”并将其拆分为以下
0 - 1
1 - 2
2 - 3
3 - 4
4 - 5
然后我将这些数字稍微调整一下以获得
0 - 5
1 - 2
2 - 3
3 - 4
4 - 1
一旦完成,我想返回获取此数组并创建新订单的int,因此我想要的输出是“52341”
我虽然解决了这个问题,但是当我运行我的代码时,我发现以下错误'输入字符串的格式不正确。'
所以这是我的代码,任何人都可以帮忙吗?
C#
string result = number[i].ToString();
var intList = result.Select(digit => Int64.Parse(digit.ToString()));
Int64[] Circle = intList.ToArray();
int order = Circle.Length;
int check = 0;
while (check < order)
{
numholder = Circle[0];
Array.Copy(Circle, 1, Circle, 0, Circle.Length - 1);
Circle[order - 1] = numholder;
//string p = Circle.ToString();
//string p = Circle.ToString();
Int64 h = Int64.Parse(Circle.ToString());
答案 0 :(得分:3)
最简单的方法是完全跳过字符串,并使用小学的多位数字的定义:
var res = 0L;
var mul = 1L;
foreach (var digit in Circle) {
res += mul*digit;
mul *= 10;
}
您还可以从数字中创建一个字符串并对其进行解析,但效率较低:
var numStr = string.Join("", Circle.Select(digit => digit.ToString()));
var num = long.Parse(numStr);
答案 1 :(得分:2)
我认为你的问题就在这一行:
Int64 h = Int64.Parse(Circle.ToString());
这是因为Circle.ToString()
返回Int64[]
,这不是正确的Int64
我认为你应该将这一行与String.Join
:
Int64 h = Int64.Parse(String.Join("", Circle));
答案 2 :(得分:0)
您缺少代码,但是无法对数据进行加入?
string newresult = order.Join("");
这里没有VS,所以不能检查代码,但这样的东西应该可以工作
答案 3 :(得分:0)
int[] singleDigitArray = new int[] { 1, 2, 4, 5, 8};
int num = 0;
for (int i = singleDigitArray.Length - 1; i >= 0; i--)
{
num += ((int)Math.Pow(10, singleDigitArray.Length-i-1)) * singleDigitArray[i];
}