【问题标题】:Convert characters of the string in alphabet integer position?在字母整数位置转换字符串的字符?
【发布时间】:2017-02-06 02:57:27
【问题描述】:

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

我必须有这样的输出:

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;
}

【问题讨论】:

  • 您的 return 语句在您的循环中,因此它在第一个字符之后取消。

标签: c# char int character letter


【解决方案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;
}

【讨论】:

    【解决方案2】:

    因为这个

    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,=> 9 :)

    【讨论】:

      猜你喜欢
      • 2013-12-01
      • 2015-01-03
      • 2013-02-08
      • 2018-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-09
      • 1970-01-01
      相关资源
      最近更新 更多