如何编写一个Java类,将用户输入的数字数据解释为一周中的几天

如何编写一个Java类,将用户输入的数字数据解释为一周中的几天,java,switch-statement,Java,Switch Statement,我是Java新手,正在学习它。我遇到了这个问题,我正在努力理解 如何编写一个Java类,该类有两个字段,其中包含以下信息: 房间号(字符串) 会议日(一串) 会议日将星期日视为第一天。用户应输入班级每天开会的天数 例如: 若课程在周二和周四举行,用户将输入35。如果用户输入无效的数字范围,如“11”或“233”等,将引发异常 我想在这里做一个switch语句,但我只是不确定如何继续。我认为对于一个有经验的Java开发人员来说,这可能是一个简单的问题。任何帮助都将不胜感激 编辑: 您需要将me

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

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

  • 房间号(字符串)
  • 会议日(一串)
会议日将星期日视为第一天。用户应输入班级每天开会的天数

例如: 若课程在周二和周四举行,用户将输入35。如果用户输入无效的数字范围,如“11”或“233”等,将引发异常

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

编辑:


您需要将
meetDays
声明为类中的实例变量。此类还应包含一个方法,该方法迭代输入的天数,并将其添加到
meetDays
。例如:

private void setDays(String input) {
    for (int i=0; i<input.length(); i++) {
        switch (input.charAt(i)) {
            case '1':
                meetDays += "Sunday ";
                break;
            case '2':
                meetDays += "Monday ";
                break;
            // and so on for the remaining days
            default:
                //throw the exception here
        }
    }
    meetDays = meetDays.trim();
}
private void setDays(字符串输入){

对于(int i=0;i您将希望在类中将
meetDays
声明为实例变量。此类还应包含一个方法,该方法迭代输入的天数并将其添加到
meetDays
。例如:

private void setDays(String input) {
    for (int i=0; i<input.length(); i++) {
        switch (input.charAt(i)) {
            case '1':
                meetDays += "Sunday ";
                break;
            case '2':
                meetDays += "Monday ";
                break;
            // and so on for the remaining days
            default:
                //throw the exception here
        }
    }
    meetDays = meetDays.trim();
}
private void setDays(字符串输入){
对于(int i=0;i
import java.util.ArrayList;
导入java.util.List;
公共班机{
公共静态void main(字符串[]args){
List dayList=new ArrayList();
int userInputNumber=1234567;
字符串userInputAsString=String.valueOf(userInputNumber);
对于(int i=0;i”+s);
}
}
}
导入java.util.ArrayList;
导入java.util.List;
公共班机{
公共静态void main(字符串[]args){
List dayList=new ArrayList();
int userInputNumber=1234567;
字符串userInputAsString=String.valueOf(userInputNumber);
对于(int i=0;i”+s);
}
}
}

您是否尝试过编写代码来创建此类课程?您是否看过教科书和/或教程来确定此类课程的结构?为了您的学习,您这样做将比我们为您提供代码更有益。一周有7天(我希望您知道这一点),第一天是星期天,编号为1,所以所有工作日都是1-7。表示工作日的字符串,例如
35
是3=星期二,5=星期四,意味着数字都必须是1-7,增加,例如
53
38
都是错误的。meetDays字符串的格式是什么?我将发布我的代码shortly@SantiagoBenoit是的正确吗?你有没有尝试过编写代码来创建这个类?你有没有看过课本和/或教程来确定这样一个类的结构?为了你的学习,你这样做会比我们为你提供代码更有益。一周有7天(我希望你知道),第一天是星期天,编号为1,所以所有工作日都是1-7。表示工作日的字符串,例如
35
是3=星期二,5=星期四,意味着数字都必须是1-7,增加,例如
53
38
都是错误的。meetDays字符串的格式是什么?我将发布我的代码shortly@SantiagoBenoit是的t是正确的,因为某些原因,我不能+1你的帖子…也许bc我是一个noobIt似乎在这里,我必须考虑每一天的组合,即23456,24,35246等。我发布的代码不会考虑逗号,当遇到一个异常时会简单地抛出一个异常。你可以添加一些东西来处理这个问题
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);
        }
    }

}