Помогите с решением этой задачи C#
Пользователь задает массив строк. Для каждой строки вывести сумму всех чисел, входящих в эту строку.
Ответы (3 шт):
Автор решения: Olegator36
→ Ссылка
Сумма чисел строки:
int sum(string st){
int res;
for(int i = 0; i < st.Lenght; i++){
res += st[i] - '0';
}
return res;
}
А если могут быть буквы, то используйте switch.
switch(st[i]){
case '1':
res += 1;
break;
case '2':
res += 2;
break;
//так до девяти
//если ноль или не цифра, то ничего не прибавляется
}
Автор решения: YD359
→ Ссылка
При условии, что числа целые, а lines - входной массив строк:
char separator = ' '; // пробел, если разделены пробелом, иначе поменять
for (int i=0; i<lines.Length; i++) {
var numArr = lines[i].Split(separator); // массив чисел в строке, пока еще в виде строк
int result = 0;
for (int j=0; j<numArr.Length; j++) {
result += int.Parse(numArr[j]);
}
Console.WriteLine("Сумма чисел в строке = " + result);
}
Автор решения: Frehzy
→ Ссылка
using System.Linq;
string num1 = "1 2 5 3 4";
string num2 = "5 3 2 1";
string[] array = new string[2] { num1, num2 };
var result = array.Select(x =>
{
return Regex.Matches(x, @"-?\d+").Cast<Match>().Sum(y => int.Parse(y.Value));
});
result - IEnumerable, который содержит ответ. Для вывода можешь использовать foreach и Console.WriteLine