jmu-枚举WeekDay(补全代码) (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

统计结果

按顺序排序的常量数组字符串表达形式


输入样例:

1. MONDAY
2. TUESDAY
3. SUNDAY
4. FRIDAY
5. SATURDAY
6. THURSDAY
7. 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.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = 0,b = 0;
        while(in.hasNext())
        {
            String str = in.next();
            if(str.equals("MONDAY"))
            {
                System.out.println("MONDAY是工作日, 序号为1");
                a ++;
            }
            else if(str.equals("WEDNESDAY"))
            {
                System.out.println("WEDNESDAY是工作日, 序号为2");
                a ++;
            }
            else if(str.equals("TUESDAY"))
            {
                System.out.println("TUESDAY是工作日, 序号为3");
                a ++;
            }
            else if(str.equals("FRIDAY"))
            {
                System.out.println("FRIDAY是工作日, 序号为4");
                a ++;
            }
            else if(str.equals("THURSDAY"))
            {
                System.out.println("THURSDAY是工作日, 序号为5");
                a ++;
            }
            else if(str.equals("SATURDAY"))
            {
                System.out.println("SATURDAY是休息日, 序号为6");
                b ++;
            }
            else if(str.equals("SUNDAY"))
            {
                System.out.println("SUNDAY是休息日, 序号为0");
                b ++;
            }
            else System.out.println("输入错误");
        }
        System.out.printf("工作日共%d天\n",a);
        System.out.printf("休息日共%d天\n",b);
        System.out.println("[FRIDAY, MONDAY, SATURDAY, SUNDAY, THURSDAY, TUESDAY, WEDNESDAY]");
    }
}


方法二:依照题目思路补全代码

1:vauleOf() : 将字符串转换为枚举实例

2:ordinal() : 获取枚举成员的索引位置

import java.util.*;
enum WeekDay{
  SUNDAY,MONDAY,WEDNESDAY,TUESDAY,FRIDAY,THURSDAY,SATURDAY
  }
public class Main {
  public static void main(String[] args) {
        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+"天");
            String f[] = {"SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"};
            Arrays.sort(f);  //  排序
            System.out.print("[");
            for(int i = 0; i<7; i++){
                   System.out.print(f[i]);
                   if(i+1<7)
                       System.out.print(", ");
           }
           System.out.println("]");
        }
}


目录
相关文章
|
JavaScript 前端开发 Java
Android与Js交互之JSBridge的使用
什么是JsBridge JsBridge是js与Native之间进行通信的桥梁。 为什么要使用JsBridge Android4.2以下的addJavascriptInterface存在安全漏洞,虽然在Android4.
3381 0
|
5天前
|
人工智能 JavaScript Linux
【Claude Code 全攻略】终端AI编程助手从入门到进阶(2026最新版)
Claude Code是Anthropic推出的终端原生AI编程助手,支持40+语言、200k超长上下文,无需切换IDE即可实现代码生成、调试、项目导航与自动化任务。本文详解其安装配置、四大核心功能及进阶技巧,助你全面提升开发效率,搭配GitHub Copilot使用更佳。
|
6天前
|
存储 人工智能 自然语言处理
OpenSpec技术规范+实例应用
OpenSpec 是面向 AI 智能体的轻量级规范驱动开发框架,通过“提案-审查-实施-归档”工作流,解决 AI 编程中的需求偏移与不可预测性问题。它以机器可读的规范为“单一真相源”,将模糊提示转化为可落地的工程实践,助力开发者高效构建稳定、可审计的生产级系统,实现从“凭感觉聊天”到“按规范开发”的跃迁。
856 13
|
3天前
|
云安全 安全
免费+限量+领云小宝周边!「阿里云2026云上安全健康体检」火热进行中!
诚邀您进行年度自检,发现潜在风险,守护云上业务连续稳健运行
1166 1
|
5天前
|
人工智能 JavaScript 前端开发
【2026最新最全】一篇文章带你学会Cursor编程工具
本文介绍了Cursor的下载安装、账号注册、汉化设置、核心模式(Agent、Plan、Debug、Ask)及高阶功能,如@引用、@Doc文档库、@Browser自动化和Rules规则配置,助力开发者高效使用AI编程工具。
710 4
|
6天前
|
消息中间件 人工智能 Kubernetes
阿里云云原生应用平台岗位急招,加入我们,打造 AI 最强基础设施
云原生应用平台作为中国最大云计算公司的基石,现全面转向 AI,打造 AI 时代最强基础设施。寻找热爱技术、具备工程极致追求的架构师、极客与算法专家,共同重构计算、定义未来。杭州、北京、深圳、上海热招中,让我们一起在云端,重构 AI 的未来。
|
8天前
|
IDE 开发工具 C语言
【2026最新】VS2026下载安装使用保姆级教程(附安装包+图文步骤)
Visual Studio 2026是微软推出的最新Windows专属IDE,启动更快、内存占用更低,支持C++、Python等开发。推荐免费的Community版,安装简便,适合初学者与个人开发者使用。
980 11

热门文章

最新文章