3.5 jmu-枚举WeekDay(补全代码) (5分)

题目要求

本题要求编写一个枚举类WeekDay,包含周一至周日7个常量。7个常量的名字为对应的英文单词大写,常量的顺序则可观察样例获得。
本题还要求编写将从控制台输入的字符串转化为WeekDay类型变量,然后使用swith根据该变量执行相应代码。
最后,本题要求输出统计结果,并得到WeekDay的常量数组,然后对其进行排序并输出。以下为代码框架,请在相应位置补全代码:

import java.util.Arrays;
import java.util.Scanner;
//这里编写泛型类WeekDay的定义
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //这里包含一些用于统计的初始化代码        
        try {
            while(sc.hasNext()) {
                String weekDayStr = sc.next();
                //这里编写将weekDayStr转化为WeekDay类型变量x的代码
                //这里编写使用switch根据x类型输出对应信息并统计的代码
                }
            }
        } catch (Exception e) {
            System.out.println("输入错误");
        }
        //这里输出统计信息
        //这里编写获得WeekDay常量数组并将其转化为String数组a的代码
        //这里编写将a数组排序并打印出来的代码
        sc.close();
    }
}

输入格式

输入一些字符串,代表字符常量x

输出格式

当输入的是工作日,输出:x是工作日, 序号为y;当输入的是休息日,输出:x是工作日, 序号为y
统计结果:
按顺序排序的常量数组字符串表达形式

输入样例:

MONDAY
TUESDAY
SUNDAY
FRIDAY
SATURDAY
THURSDAY
wednesday

输出样例

MONDAY是工作日, 序号为1
TUESDAY是工作日, 序号为3
SUNDAY是休息日, 序号为0
FRIDAY是工作日, 序号为4
SATURDAY是休息日, 序号为6
THURSDAY是工作日, 序号为5
输入错误
工作日共4天
休息日共2[FRIDAY, MONDAY, SATURDAY, SUNDAY, THURSDAY, TUESDAY, WEDNESDAY]

代码如下

import java.util.*;
//这里编写泛型类WeekDay的定义
enum WeekDay{
	SUNDAY,MONDAY,WEDNESDAY,TUESDAY,FRIDAY,THURSDAY,SATURDAY
	}

public class Main {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		    Scanner sc = new Scanner(System.in);
		    //这里包含一些用于统计的初始化代码   
		    int s = 0, r = 0;
		    try {
		        while(sc.hasNext()) {
                    String weekDayStr = sc.next();
		            WeekDay x;
		            x = Enum.valueOf(WeekDay.class,weekDayStr );
		            switch(x) {
		               case SUNDAY:System.out.println(x+"是休息日, 序号为"+WeekDay.SUNDAY.ordinal());
		                     s++;
		               	     break;
		               case MONDAY:System.out.println(x+"是工作日, 序号为"+WeekDay.MONDAY.ordinal());
	               		    r++; 
	               		    break;
		               case TUESDAY:System.out.println(x+"是工作日, 序号为"+WeekDay.TUESDAY.ordinal());
	               		    r++;
	               		    break;
		               case WEDNESDAY:System.out.println(x+"是工作日, 序号为"+WeekDay.WEDNESDAY.ordinal());
	               		    r++;
	               		    break;
		               case THURSDAY:System.out.println(x+"是工作日, 序号为"+WeekDay.THURSDAY.ordinal());
	               		    r++;
	               		    break;
		               case FRIDAY:System.out.println(x+"是工作日, 序号为"+WeekDay.FRIDAY.ordinal());
	               		    r++;
	               		    break;
		               case SATURDAY:System.out.println(x+"是休息日, 序号为"+WeekDay.SATURDAY.ordinal());
		               	    s++;
		               	    break;
		               }
		                //这里编写将weekDayStr转化为WeekDay类型变量x的代码
		                //这里编写使用switch根据x类型输出对应信息并统计的代码
		                }
		        } catch (Exception e) {
		            System.out.println("输入错误");
		        }
		        //这里输出统计信息
		        System.out.println("工作日共"+r+"天");
		        System.out.println("休息日共"+s+"天");
		        //这里编写获得WeekDay常量数组并将其转化为String数组a的代码
		       String[] a = {"SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"};
		        /*String[] a = new String[7];
		        a[0] = WeekDay.FRIDAY.toString();
		        a[1] = WeekDay.MONDAY.toString();
		        a[2] = WeekDay.SATURDAY.toString();
		        a[3] = WeekDay.SUNDAY.toString();
		        a[4] = WeekDay.THURSDAY.toString();
		        a[5] = WeekDay.TUESDAY.toString();
		        a[6] = WeekDay.WEDNESDAY.toString();*/
                Arrays.sort(a);
               System.out.print("[");
		       for(int i = 0; i<7; i++){
	                   System.out.print(a[i]);
	                   if(i+1<7)
	                       System.out.print(", ");
               }
               System.out.println("]");
		        //这里编写将a数组排序并打印出来的代码
		        sc.close();
        }
}

结果如下:

在这里插入图片描述

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值