2016-12-04 24 views
-1

想法很简单,用户在文本框中输入数字(字符串),例如155321,应用程序将总和1 + 5 + 5 + 3 + 2 + 1,并将它们的总和给出,因为我仍然学习,我不知道从哪里开始。该应用程序是在WPF中制作的。希望我的解释清楚。总结一个字符串的所有字符?

回答

2

简单LINQ答案:

string s = // your input string 
var result = s.Select(x => int.Parse(x.ToString())).Sum(); 

这是普遍的答案,没有WPF的依赖。

+2

毫无int.Parse'的'过载,这需要' char'参数,所以这不会编译。 – Lee

+1

您应该将'x'强制转换为'int'。正如Lee纠正指出的,没有这样的超载。 's.Select(x =>(int)x).Sum()' – Christos

+0

@Christos这将总和每个字符的十进制值。如果你想避免:s.Select(x =>(int)x-'0')。Sum()' – Neyoh

1

我提出了两种解决方案:

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)); 
     } 
相关问题