java - 如何编写一个 Java 类,将用户输入的数字数据解释为星期几

标签 java switch-statement

我是 Java 新手,正在学习它。我遇到了这个问题,我想理解它。

如何编写一个具有 2 个字段的 Java 类,其中包含以下信息:

  • 房间号(字符串)
  • MeetDays(字符串)

MeetDays 将星期日视为第一天。用户应输入类(class)每天聚会的天数。

示例: 如果周二和周四上课,用户将输入 35。如果用户输入无效的数字范围,例如“11”或“233”等,则会抛出异常。

我想在这里做一个 switch 语句,但我只是不确定如何继续。我认为对于经验丰富的 Java 开发人员来说这可能是一个简单的问题。任何帮助或协助将不胜感激。

编辑:

public class SectionNumber {

    private String roomNumber;
    private String meetDays;

    public SectionNumber() {}

    public SectionNumber(String roomNumber, String meetDays) {
        this.roomNumber = roomNumber;
        this.meetDays = meetDays;
    }

    public String getRoomNumber() {
        return roomNumber;
    }

    public void setRoomNumber(String roomNumber) {
        this.roomNumber = roomNumber;
    }

    public String getMeetDays() {
        return meetDays;
    }

    public void setMeetDays(String meetDays) {
        this.meetDays = meetDays;
    }


    // not sure how to proceed here
    public void classMeetDays(String userInput) {

        switch (meetDays) {
        case userInput:

            break;

        default:
            break;
        }
    }
}

最佳答案

import java.util.ArrayList;
import java.util.List;

public class Main {

    public static void main(String[] args) {

        List<String> dayList = new ArrayList<String>();

        int userInputNumber = 1234567;

        String userInputAsString = String.valueOf(userInputNumber);


        for (int i = 0; i < userInputAsString.length(); i++) {
            char dayAsNumericChar = userInputAsString.charAt(i);

            String day;
            switch (dayAsNumericChar) {
            case '1':
                day = "Sunday";
                break;
            case '2':
                day = "Monday";
                break;
            case '3':
                day = "Tuesday";
                break;
            case '4':
                day = "Wednesday";
                break;
            case '5':
                day = "Thursday";
                break;
            case '6':
                day = "Friday";
                break;
            case '7':
                day = "Saturday";
                break;
            default:
                throw new RuntimeException("Invalide number: " + dayAsNumericChar);
            }
            if (dayList.contains(day)) {
                throw new RuntimeException("Day: " + day + " is picked twice");
            }
            dayList.add(day);


        }
        System.out.println(userInputAsString);
        for (String s : dayList) {
            System.out.println(" -> " + s);
        }
    }

}

关于java - 如何编写一个 Java 类,将用户输入的数字数据解释为星期几,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37015511/

相关文章:

java - retrofit /Sphere 引擎 API 错误 : undefined reference to `main'

java - HQL 中的日期限制

java - '<=' 无效字符常量

java - 为什么我要在 switch 语句上使用责任链

Java switch 语句 - 行为困惑

java - 在 Linux 上运行 WEKA

java - Wildfly 9 中的 log4j2

Java 7 update 25 不允许在安装安全管理器的情况下进行类加载?

c - C switch 语句中的随机标签不会导致错误

C++ SDL2 程序在切换循环时崩溃