【训练6】模拟2021年NBA扣篮大赛评分
请5位评委(冰人格文、穆大叔、魔术师约翰逊、大鲨鱼奥尼尔以及麦蒂)打分,控制台输入5个0~10的整数,中间用逗号隔开(入=如:10,9,9,8,10),最后计算5位评委给出的分数之和。
/*【效率6】模拟2021年NBA扣篮大赛评分
* 请5位评委(冰人格文、穆大叔、魔术师约翰逊、大鲨鱼奥尼尔以及麦蒂)打分,
* 控制台输入5个0~10的整数,中间用逗号隔开(入=如:10,9,9,8,10),
* 最后计算5位评委给出的分数之和。
* */
package jhl;
import java.util.Scanner;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import java.util.Collection;
public class Zhlx5 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
System.out.println("请冰人格文、穆大叔、魔术师约翰逊、大鲨鱼奥尼尔以及麦蒂5位评委打分(中间用逗号隔开):");
Scanner sc = new Scanner(System.in);
String scores = sc.next(); //获取输入内容
String[] s = scores.split(","); //分隔符拆分字符串
HashMap<Integer,Integer> map = new HashMap<>();
//向数组中添加内容
for(int i = 0;i < s.length;i++) {
map.put(i, Integer.valueOf(s[i])); //将字符串内容转换为Integer对象
}
//遍历key
Set<Integer> set = map.keySet();
Iterator<Integer> it = set.iterator();
int sum = 0; //求和
while(it.hasNext()) { //迭代器遍历集合
//接收key值
Object number = it.next();
//接收value值
int a = (int)map.get(number); //如果Map集合中存在此key对象,则返回其value内容
sum = sum +=a ; //求和
}
System.out.println("分数之和为:"+sum);
}
}
方法二、
package jhl;
import java.util.Scanner;
import java.util.HashMap;
import java.util.Iterator;
public class Xl62 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
System.out.println("————————————————————————模拟NBA扣篮大赛的评分————————————————————————\n");
System.out.println("请5位评委打分\n(提示:输入五个0-10内的整数,中间用逗号隔开,例如:10,9,9,8,10):");
Scanner sc = new Scanner(System.in);
String str = sc.next();
String[] score = str.split(",");
//获取控制台输入的5个整数
int s1 = Integer.valueOf(score[0]);
int s2 = Integer.valueOf(score[1]);
int s3 = Integer.valueOf(score[2]);
int s4 = Integer.valueOf(score[3]);
int s5 = Integer.valueOf(score[4]);
//创建HashMap集合对象
HashMap<String,Integer> map = new HashMap<>();
map.put("魔术师约翰逊", s1);
map.put("大鲨鱼奥尼尔", s2);
map.put("麦蒂", s3);
map.put("穆大叔", s4);
map.put("冰人格文", s5);
//统计总分数
int total = 0;
//迭代,获取key元素的set集合
Iterator<String> it = map.keySet().iterator(); // 创建Set的迭代器,内容是key的Set集合
while(it.hasNext()) {
String key = (String)it.next(); // it.next():key内容
System.out.println(key + ":" + map.get(key) +"分"); // get(key):获取key对应的value值
total += map.get(key); // 总分数
}
System.out.println("\n球员本本轮扣篮的成绩:"+total+"分");
sc.close();
}
}