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