【发布时间】:2017-05-20 23:11:20
【问题描述】:
我想根据 ASCII 值计算每个单词的平均值
例如:你好,H= 72,e=101,l=108,l=108,o=111
加起来会得到 500,然后根据字母数计算平均值,即 500/5 = 100 因此,Hello 的平均值 = 100,与“世界”等方式相同。
最后计算出所有单词的平均值,加起来显示为整个句子的最终平均值
这是我创建的代码,但它在线程“main”java.lang.ArrayIndexOutOfBoundsException 中给出了一个异常
import java.util.*;
import java.lang.*;
import java.io.*;
class Word
{
public static void main (String[] args)
{
String str="Hello World";
int average1=0;
int j=0;
int[] average=new int[20];
String[] s=str.split(" "); //Splitting into each word
for(String s1 : s)
{
char[] c=s1.toCharArray();
for(int i=0;i<str.length();i++)
{
average[i]=(int)c[i]; //Average ASCII based value for each word
}
while(average[j]!=0)
{
average1=average[j]/s1.length(); //Sum up average of each Word and average of who words is calculated
System.out.print(average1);
j++;
}
}
}
}
如果有人能用一个好的逻辑帮助我,那将不胜感激。
【问题讨论】:
-
"[...] 即 500/5 =100 因此平均 Hello = 500" - 我不明白您对 "average".
-
java.lang.ArrayIndexOutOfBoundsException
->你正在循环 str.length() 等于 55 而不是使用这个使用 c.length 在你的 for 循环中,你的代码也有很多问题。 -
感谢您的线索和后半部分,我仍处于学习 Java 的新手阶段,并挑战自己解决一些新事物,但有些事情相当复杂
标签: java