在字母表整数位置转换字符串的字符?

时间:2016-09-28 08:42:27

标签: c# char int character letter

我想计算字符串的字符整数位置。 但是当我运行这个方法时,它只计算第一个字符。

我必须有这样的输出:

A = 1 + D = 4 + E = 5,=> 10

private int letterNumber(string letter)
{
    char c = letter[0];
    for (int i = 0; i < letter.Length; i++)
    {
        c = (char)letter[i];
        return char.ToUpper(c) - 64;
    }
    return c;
}

2 个答案:

答案 0 :(得分:1)

你回到循环内 - 这不是你想要的行为。通过一些小的重构,我们可以稍微清理一下:

private int letterNumber(string letter)
{
    int sum = 0;
    for (int i = 0; i < letter.Length; i++)
    {
        char c = letter[i]; // declare it in loop - you overwrite it here anyway
        sum += char.ToUpper(c) - 64;
    }
    return sum;
}

答案 1 :(得分:0)

这是因为这个

return char.ToUpper(c) - 64;

它退出方法并返回第一个值,尝试将结果存储在变量中并返回它,如下所示

private int letterNumber(string letter)
{
    int sum = 0;
    char c = letter[0];
    for (int i = 0; i < letter.Length; i++)
    {
        c = (char)letter[i];
        sum += char.ToUpper(c) - 64;

    }

    return sum;
 }

此外,A = 1 + D = 4 + E = 4,=&gt; 9:)