-1
想法很简单,用户在文本框中输入数字(字符串),例如155321,应用程序将总和1 + 5 + 5 + 3 + 2 + 1,并将它们的总和给出,因为我仍然学习,我不知道从哪里开始。该应用程序是在WPF中制作的。希望我的解释清楚。总结一个字符串的所有字符?
想法很简单,用户在文本框中输入数字(字符串),例如155321,应用程序将总和1 + 5 + 5 + 3 + 2 + 1,并将它们的总和给出,因为我仍然学习,我不知道从哪里开始。该应用程序是在WPF中制作的。希望我的解释清楚。总结一个字符串的所有字符?
简单LINQ答案:
string s = // your input string
var result = s.Select(x => int.Parse(x.ToString())).Sum();
这是普遍的答案,没有WPF的依赖。
我提出了两种解决方案:
1-标准:
string resultNumber = "12"; // your number
int sumNumber = 0;// result of calculating
for (int i = 0; i < resultNumber.Length; i++)
{
sumNumber = int.Parse(resultNumber.Substring(i, 1)) + sumNumber;
}
2-递归
public static int SumNumber(string number)
{
if(string.IsNullOrEmpty(number))
return 0;
else if(number.Length == 1)
return int.Parse(number);
else
return SumNumber(number.Substring(1)) + int.Parse(number.Substring(0, 1));
}
毫无int.Parse'的'过载,这需要' char'参数,所以这不会编译。 – Lee
您应该将'x'强制转换为'int'。正如Lee纠正指出的,没有这样的超载。 's.Select(x =>(int)x).Sum()' – Christos
@Christos这将总和每个字符的十进制值。如果你想避免:s.Select(x =>(int)x-'0')。Sum()' – Neyoh