如何从字符串中找到平均字长? [关闭]

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 应该与此相关?您的代码是正确的(至少在平均初始化之前)

以上是关于如何从字符串中找到平均字长? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

从 pandas 数据框中删除句子长度超过特定字长的行

如何找到R中分类列的平均值[关闭]

如何从包含数字和字母的字符串中计算平均值?

如何计算无符号字符数组中元素的平均值?

尝试从列表中提取字符 [关闭]

如何从单个文本文件中同时打印字符串和整数?