gpt4 book ai didi

c# - 拆分字符串然后解析为整数

转载 作者:行者123 更新时间:2023-11-30 19:25:11 25 4
gpt4 key购买 nike

这是我正在做的练习:

编写一个程序,将格式为 abcd(例如 2011)的四位数字作为输入并执行以下操作:

• 计算数字的总和(在我们的示例中为 2+0+1+1 = 4)。

• 在控制台上以相反的顺序打印数字:dcba(在我们的示例中为 1102)。

• 将最后一位数字放在第一个位置:dabc(在我们的示例中为 1201)。

• 交换第二和第三位数字:acbd(在我们的示例中为 2101)。

这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication6
{
class Program
{
static void Main(string[] args)
{
string FourDigitNum = Console.ReadLine();
string[] digits = FourDigitNum.Split();
int firstDigit = int.Parse(digits[0]);
int secondDigit = int.Parse(digits[1]);
int thirdDigit = int.Parse(digits[2]);
int fourthDigit = int.Parse(digits[3]);
int sum = firstDigit + secondDigit + thirdDigit + fourthDigit;
string reversed = digits[3] + digits[2] + digits[1] + digits[0];
string lastCharFirst = digits[3] + digits[0] + digits[1] + digits[0];
string exchanged = digits[0] + digits[2] + digits[1] + digits[3];
Console.WriteLine("The Sum is: {0}", sum);
Console.WriteLine("The Reversed number is: {0}", reversed);
Console.WriteLine("The Last Digit is First: {0}", lastCharFirst);
Console.WriteLine("The Second and Third Digit Exchanged: {0}", exchanged);
}
}
}

当我使用 1100 作为输入时出现的错误是:

Unhandled Exception: System.IndexOutOfRangeException: Index was outside the boun ds of the array. at ConsoleApplication6.Program.Main(String[] args) in c:\Users\User1\Document s\Visual Studio 2013\Projects\ConsoleApplication6\Program.cs:line 16

编辑:非常感谢,我误解了 Split();工作了。这是我的最终工作代码:

namespace ConsoleApplication6
{
class Program
{
static void Main(string[] args)
{
string digits = Console.ReadLine();
int firstDigit = (int)Char.GetNumericValue(digits[0]);
int secondDigit = (int)Char.GetNumericValue(digits[1]);
int thirdDigit = (int)Char.GetNumericValue(digits[2]);
int fourthDigit = (int)Char.GetNumericValue(digits[3]);
int sum = firstDigit + secondDigit + thirdDigit + fourthDigit;
Console.WriteLine("The Sum is: {0}", sum);
Console.WriteLine("The Reversed number is: {3}{2}{1}{0}", firstDigit, secondDigit, thirdDigit, fourthDigit);
Console.WriteLine("The Last Digit is First: {3}{0}{1}{2}", firstDigit, secondDigit, thirdDigit, fourthDigit);
Console.WriteLine("The Second and Third Digit Exchanged: {0}{2}{1}{3}", firstDigit, secondDigit, thirdDigit, fourthDigit);
}
}
}

最佳答案

不需要 Split,您假设通过执行 Split() 它将每个字符拆分为字符串数组的元素。它不是,没有任何参数的 Split() 将在空白字符上拆分,并且由于在您的字符串 1102 中您没有任何空白字符,您将得到返回单个元素的数组。因此异常(exception)。

使用字符串作为字符数组,您可以访问每个索引并通过连接字符创建一个反向字符串。还要学习调试和单步执行代码,这将帮助您对代码进行故障排除。

作为提示使用:

int firstDigit = (int) Char.GetNumericValue(FourDigitNum[0]);

关于c# - 拆分字符串然后解析为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30741830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com