Proste dodawanie cyfr w stringu

Proste dodawanie cyfr w stringu
Iwaniukooo
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 6 lat
  • 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();
        }
    }
}
edytowany 1x, ostatnio: Iwaniukooo
XA
  • Rejestracja:ponad 9 lat
  • Ostatnio:około rok
  • 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();
        }
Iwaniukooo
O,właśnie o coś takiego mi chodziło.Dziękuję Ci bardzo
litrmleka
  • Rejestracja:ponad 11 lat
  • Ostatnio:3 miesiące
  • Lokalizacja:lubuskie
  • Postów:201
1

Możesz zrobić teź tak:

Kopiuj
            string number = "123456";
            var sum = number.Sum(c => c - '0');
ŁF
Moderator
  • Rejestracja:ponad 22 lata
  • Ostatnio:2 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.