华为机试题-输出句子的重量
每个句子由多个单词组成,句子中的每个单词的长度都可能不一样,假设每个单词的长度Ni为该单词的重量,你需要做的就是给出整个句子的平均重量V。
要求
输入只有一行,包含一个字符串S(长度不会超过100),代表整个句子,句子中只包含大小写的英文字母,每个单词之间有一个空格。
输出
输出句子S的平均重量V(四舍五入保留两位小数)
样例
输入: Who Love Solo
输出 :3.67
解题思路:
- 先将输入的字符串转为字符数组,
- 然后遍历累加每个单词的长度,即得到总的权重,再除以数组长度,得到平均权重。
- 又因为要保留2位小数,这里借助DecimalFormat类
import java.text.DecimalFormat;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String[] arr = str.split(" ");
double weight = 0.0;
double avgWeight = 0.0;
for(int i = 0; i < arr.length; i++) {
weight += arr[i].length();
}
avgWeight = (double)weight / arr.length;
DecimalFormat df = new DecimalFormat("#.00"); // 借助DecimalFormat保留两位小数的做法
String format = df.format(avgWeight);
System.out.println(format);
}
}