【问题标题】: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("\\p{P}?[ \\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;
}

【问题讨论】:

标签: java


【解决方案1】:

使用 split() 方法将字符串拆分为单词(它已重载,我想我会选择一个以 regexp 作为参数的方法),然后遍历数组(split() 将返回)并为每个元素调用 length() .

附:在询问之前,请先做这些事情: 尝试搜索阅读文档

【讨论】:

  • 我编辑我的问题。你怎么看? java8上如何实现?
  • @cori 为什么 java8 应该与此相关?您的代码是正确的(至少在平均初始化之前)
猜你喜欢
  • 2023-03-22
  • 2018-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多