有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java试图编写代码来计算句子中单词的平均长度

代码需要有一个带有参数String s的方法averageLength。该方法需要以double值的形式返回s中单词的平均长度。假设s只由单个空格分隔的单词组成,没有任何前导空格或尾随空格。我在下面有一个代码,可以找到单词的平均长度,但它没有averageLength方法:

import java.util.Scanner;

class main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("Please type in your sentence, then press enter: ");

        String words = sc.nextLine();

        int count = 0;
        double sum = 0;
        double average = 0;

        sc = new Scanner(words);

        while (sc.hasNext()) {

            String userInput = sc.next();

            double charNum = userInput.length();
            sum = charNum + sum;
            count++;

            if (count > 0) {
                average = sum / count;
            }
        }
        System.out.println("Average word length = " + average);
    }
}

共 (1) 个答案

  1. # 1 楼答案

    首先,声明一个返回double并接受String参数的方法

      private static double returnAverageLength(String sentence){
    

    借助split()方法,我们把句子分成几个单词

      String [] words = sentence.split(" ");
    

    使用for循环,我们计算句子中的所有字符

    for(int i=0;i<words.length;i++){
                countCharacters+= words[i].length();
            }
    

    然后我们返回平均结果

    return countCharacters / words.length;
    

    完整代码

    public static void main(String[] args) {
    
            Scanner scanner = new Scanner(System.in);
    
           System.out.println("Write sentence");
           String s = scanner.nextLine();
    
           double average = returnAverageLength(s);
    
            System.out.println("AVERAGE IS " + average);
    
        }
    
        private static double returnAverageLength(String sentence){
    
            String [] words = sentence.split(" ");
    
            double countCharacters = 0;
    
            for(int i=0;i<words.length;i++){
                countCharacters+= words[i].length();
            }
    
    
    
            return countCharacters / words.length;
        }
    
        
    }
    

    输出

    Write sentence
    Hello From Stackoverflow
    AVERAGE IS 7.33