在字符串C#中添加所有数字

时间:2014-04-03 15:07:53

标签: c# string loops numbers int

我想在一个字符串中添加所有数字,我确信使用for loop可以轻松完成。 我有:

int numbers = 1234512345;

for (int i = 0 ; i numbers.Length ; i++)        
{            
    int total;            
    total = int [i];
}

但是因为某种原因它不会工作,我很困惑。

2 个答案:

答案 0 :(得分:0)

首先,"字符串"你试图迭代的是一个int。你可能意味着什么......

string numbers = "1234512345"

之后,有几种方法可以做到这一点,我个人最喜欢的是迭代字符串的每个字符,在其上使用TryParse(如果字符串恰好是字母数字,这可以消除任何问题)并累计结果。见下文:

    static void Main(string[] args) {
        string numbers = "1234512345";
        int total = 0;
        int num; // out result

        for (int i = 0; i < numbers.Length; i++) {
            int.TryParse(numbers[i].ToString(), out num);
            total += num; // will equal 30
        }
        Console.WriteLine(total);

        total = 0;
        string alphanumeric = "1@23451!23cf47c";
        for (int i = 0; i < alphanumeric.Length; i++) {
            int.TryParse(alphanumeric[i].ToString(), out num);
            total += num; // will equal 32, non-numeric characters are ignored
        }
        Console.WriteLine(total);

        Console.ReadLine();
    }

与其他人发布的一样,有几种方法可以解决这个问题,最重要的是关于个人偏好。

答案 1 :(得分:-2)

这应该做你想做的事情

int total = 0;
foreach(char numchar in numbers)
{
     total += (int)char.GetNumericValue(numchar);
}

编辑:

1行解决方案:

 int total = numbers.Sum(x=> (int)char.GetNumericValue(x));

PS:为什么选择downvotes?