2016-12-04 60 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)); 
     } 
相關問題