2016-09-28 43 views
1

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

我必须具有这样的输出:

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

你的return语句在你的循环中,因此为什么它在第一个字符后取消。 – ThePerplexedOne

回答

0

您在循环内返回 - 这不是您想要的行为。有一些小的重构,我们可以清理一下:

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

谢谢它的作品:P – id94

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