如何从字符串中找到平均字长? [关闭]
Posted
技术标签:
【中文标题】如何从字符串中找到平均字长? [关闭]【英文标题】:How can I find the average word length from the String? [closed] 【发布时间】:2018-01-22 04:18:54 【问题描述】:如何从字符串文本参数中找到平均字长?我有 void someMethod(String text)。单词由字母和数字组成。有必要考虑到空格和标点符号
public static List<String> someMethod(String text)
String[] words = text.split("\\pP?[ \\t\\n\\r]+"); // split by whitespace
int count = 0;
double sum = 0;
for (String word : words)
double wordLength = word.length();
sum += wordLength;
count++;
final double average = sum / count;
List<String> list = Arrays.stream(words).filter(s -> s.length()>= average).collect(Collectors.toList());
list.sort(Comparator.comparingInt(s -> Math.abs(s.length() - "intelligent".length())));
return list;
【问题讨论】:
这看起来很像家庭作业@cori - 我们很乐意帮助解决特定的代码问题,但不会为您做所有事情!我建议查看字符串 API docs.oracle.com/javase/7/docs/api/java/lang/String.html 不幸的是,您的问题仅包含要求 - 它没有显示您自己为解决此问题所做的任何努力。请在此问题中添加您的尝试 - 因为该站点不是免费的“我们为您做(家庭)工作”服务。除此之外:请转至help center 了解如何/在这里问什么。谢谢! 我投票决定将此问题作为离题结束,因为:"3. Questions asking for homework help must include a summary of the work you've done so far to solve the problem, and a description of the difficulty you are having solving it."。您问题的当前状态不满足这些要求。使用edit 选项来改进它。另请阅读Open letter to students with homework problems 除此之外:首先是您清楚自己的要求。我们无法告诉您什么您的问题是什么 - 我们只能帮助解决...在您之后自己迈出了第一步。 您添加了一些代码,但仍然没有描述它的问题。 【参考方案1】:使用 split() 方法将字符串拆分为单词(它已重载,我想我会选择一个以 regexp 作为参数的方法),然后遍历数组(split() 将返回)并为每个元素调用 length() .
附:在询问之前,请先做这些事情: 尝试、搜索、阅读文档
【讨论】:
我编辑我的问题。你怎么看? java8上如何实现? @cori 为什么 java8 应该与此相关?您的代码是正确的(至少在平均初始化之前)以上是关于如何从字符串中找到平均字长? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章