查找char数组中的整数平均值

时间:2012-10-28 23:08:14

标签: java

因此我无法创建此函数,必须找到char数组的整数平均值。

这是我的数组char [] letters = {'A','B','C','D','E','F','G','H','I',' J'};

我试图输入强制转换以找到整数平均值,例如A = 32 j = 74.添加整数值并将其转回字符但暂时卡住。

/********************************************************************************
 This function will calculate the integer average of characters in the array
********************************************************************************/
public static void average( char [] letters )
{
     int total = 0;

     char mean;


     total = total + letters[letters.length];
     mean = (char)total / letters.length;

     System.out.println("The value is " + average( letters) );
}

3 个答案:

答案 0 :(得分:2)

这是不正确的:

 total = total + letters[letters.length];

此操作将超过数组末尾的值添加到total,从而触发异常。

你需要一个循环:

for (int i = 0 ; i != letters.length ; i++)
    total += letters[i];

您还可以使用for - in循环,如下所示:

for (char ch : letters)
    total += ch;

您还要投射total而不是投射分割结果:

mean = (char)total / letters.length;

应替换为

mean = (char)(total / letters.length); // Note the added parentheses

答案 1 :(得分:1)

首先 - 你的方法是递归的,它会破坏。 我想你想把字符转换成十进制ascii代码。试试这个:

public static int average( char [] letters )
{
     int total = 0;

     for(int i = 0; i < letters.length; i++){
       total += (int)letters[i];
     }

     return total / letters.length; //or cast it back to char if you prefer
}

答案 2 :(得分:0)

为了做到这一点,这是一个关于如何做到这一点的练习吗?如果没有,请使用Character数组并使用.digit()。

如果是这样,那么你就是在正确的轨道上,但我的第一个想法就是循环,减去适当的值以将ascii字符更改为数字,也许将它们粘贴到一个新数组中,然后再循环到平均值。

老实说,我不知道你是怎么用0循环尝试这个。