我想在一个字符串中添加所有数字,我确信使用for loop
可以轻松完成。
我有:
int numbers = 1234512345;
for (int i = 0 ; i numbers.Length ; i++)
{
int total;
total = int [i];
}
但是因为某种原因它不会工作,我很困惑。
答案 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?