Proste dodawanie cyfr w stringu

Proste dodawanie cyfr w stringu
Iwaniukooo
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0

Witam,czy pomógłby mi ktoś zrobić prosty program,który zsumuje wszystkie cyfry występujące w stringu?Oto na przykładzie.
Problemem jest to,że sumują się tylko wartości znaków ASCII .
Czy da radę to zrobić inaczej,niż od każdego dodania odejmować 48(aby uzyskać wartość cyfry)?

Kopiuj
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp9
{
    class Program
    {
        static void Main(string[] args)
        {
            string numerki = "123456";
            int suma = 0;
            for(int i=0;i<numerki.Length;i++)
            {
                suma += (int)numerki[i];
            }
            Console.WriteLine(suma);

            Console.ReadKey();
        }
    }
}
XA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 35
2

Można bez odejmowania 48 w ten sposób:

Kopiuj
static void Main(string[] args)
        {
            string numerki = "123456";
            int suma = 0;
            foreach (char i in numerki)
            {
                suma += (int)Char.GetNumericValue(i);
            }
            Console.WriteLine(suma);

            Console.ReadKey();
        }
litrmleka
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: lubuskie
  • Postów: 201
1

Możesz zrobić teź tak:

Kopiuj
            string number = "123456";
            var sum = number.Sum(c => c - '0');
ŁF
  • Rejestracja: dni
  • Ostatnio: dni
1

Ewentualnie w poniższy sposób i bez odejmowania, ale sposób @litrmleka będzie pewnie o rząd wielkości szybszy.

Kopiuj
    var number = "123456";
    var sum = number.Sum(c => int.Parse(c.ToString()));

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.