-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