Java 在字符数组中查找整数平均值

Java 在字符数组中查找整数平均值,java,Java,所以我在创建这个函数时遇到了麻烦,这个函数必须找到字符数组的整数平均值 这是我的数组char[]字母={'A','B','C','D','E','F','G','H','I','J'} 我试图键入cast来查找整数平均值,如A=32 j=74。将整数值相加并以字符形式返回,但此时我陷入了困境 /******************************************************************************** This function will c

所以我在创建这个函数时遇到了麻烦,这个函数必须找到字符数组的整数平均值

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

我试图键入cast来查找整数平均值,如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) );
}
这是不正确的:

 total = total + letters[letters.length];
此操作将超过数组末尾的值添加到
总计
,从而触发异常

这里需要一个循环:

for (int i = 0 ; i != letters.length ; i++)
    total += letters[i];
您还可以在循环中为-
使用
,如下所示:

for (char ch : letters)
    total += ch;
您也在铸造
total
,而不是铸造除法结果:

mean = (char)total / letters.length;
应替换为

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

这是一个关于如何做到这一点的练习吗?如果不是,请使用字符数组并使用.digit()

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


老实说,我看不出你是如何用0个循环来尝试这一点的。

首先,你的方法是递归的,它会崩溃。 我想你想把字符转换成十进制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
}
公共静态整数平均值(字符[]个字母)
{
int-total=0;
for(int i=0;i
您支持ISO-LATIN-1或Unicode中的重音字符吗?您不能在字符中存储Unicode。因此,当它不能等于10时,循环停止。所以我不需要打字?@javip不,你不需要演员。当
i
到达数组末尾时,循环将停止,无论你传递了多少项。@javip你也可以使用另一种
来进行
循环,看看我的编辑。嗯,总数是否会因为+=字母[i]而返回到一个字符?@javip否,需要对
平均值进行转换,如下所示:
平均值=(字符)(total/letters.length);
既然挖掘空函数只是s.o.p而不是返回权?当然,为什么不呢?或者您可以在main方法中打印值(假设您使用的是控制台程序),如下所示:System.out.println(average(targetedCharacterArray)+“”;