获取Java语句中单词的平均长度

获取Java语句中单词的平均长度,java,Java,我的代码似乎几乎正确。我得到的答案是3.0,但应该是2.6。我已经在谷歌上搜索/查看了其他stackoverflow答案,但我没有解决方案。已尝试执行此错误2小时 代码: 公共类语句{//words保存数组。 私有静态字符串[]words={“hi”,“my”,“name”,“is”,“Bob”}; } 公共字符串toString(){//将数组返回为字符串。 返回数组.toString(字); } 公共双平均长度(字符串s){ 字符串wordysplit[]=toString().split(

我的代码似乎几乎正确。我得到的答案是3.0,但应该是2.6。我已经在谷歌上搜索/查看了其他stackoverflow答案,但我没有解决方案。已尝试执行此错误2小时

代码:

公共类语句{//words保存数组。
私有静态字符串[]words={“hi”,“my”,“name”,“is”,“Bob”};
}
公共字符串toString(){//将数组返回为字符串。
返回数组.toString(字);
}
公共双平均长度(字符串s){
字符串wordysplit[]=toString().split(“,”);
float numWords=wordsplit.length;
float totalChar=0;
for(int i=0;i

谢谢你的帮助。谢谢

这里有一个更简单的方法

String resultString = StringUtils.join(words, "");
float avg = (float)resultString.length() / words.length;
请注意,
StringUtils
是来自
Apache
commons的类

如果不想将
apachecommons
添加到项目中,则可以使用此简单算法从数组中创建
String

String[] array = {"AB", "B", "C"};
StringBuilder builder = new StringBuilder();
for(String s : array) {
    builder.append(s);
}

System.out.println((float)builder.toString().length() / array.length);

出于好奇,会将
1.3333334
打印为
avg

,如果您执行
float numWords=wordsplit.length*1.0,会发生什么,`totalChar+=wordysplit[i].length()*1.0;`和
return((totalChar/numWords)*1.0;
请注意,您的句子类末尾有一个大括号;我认为这不是您想要的。@alephtwo是的,很抱歉这是一个错误mistake@npinti必须从float改为double才能工作,但它仍然给出了3.0。@bob9123它说的是join(Java.util.Collection,String)In-StringUtils不能应用于Java.lang.String[])。导入导入com.sun.deploy.util.StringUtils后;好的,尝试其他方法。我将无法使用该代码,因为我的数组中没有固定数量的元素。他们总是变化。因此,如果我有6个以上的元素,我不知道使用“/3”是否有效
String[] array = {"AB", "B", "C"};
StringBuilder builder = new StringBuilder();
for(String s : array) {
    builder.append(s);
}

System.out.println((float)builder.toString().length() / array.length);