【问题标题】:Assigning user input (string) to an integer in Java [duplicate]将用户输入(字符串)分配给Java中的整数[重复]
【发布时间】:2017-06-28 02:28:10
【问题描述】:

如果用户输入字符串,例如“Sunday”,如何将“Sunday”分配给 int 值(例如零)?

编辑: 这是经过 x 天后计算星期几的最终代码。不确定这是否是最有效的方法。

感谢大家的专业知识!

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.print("Enter today's day: ");
    String day = input.next();
    int todayDay = changeToString(day);
    System.out.println(todayDay);
}

public static int changeToString(String day) {
    int dayName = 0;

    switch (day) {

        case "Monday":
            dayName = 1;
            break;
        case "Tuesday":
            dayName = 2;
            break;
        case "Wednesday":
            dayName = 3;
        case "Thursday":
            dayName = 4;
        case "Friday":
            dayName = 5;
        case "Saturday":
            dayName = 6;

    }

    int dayselapsed = input.nextInt();
    int futureday = (dayName + dayselapsed) % 7; 

    switch (futureday) {

        case 0: System.out.println("In " + dayselapsed + " days, it will be Sunday");
            break;
        case 1: System.out.println("In " + dayselapsed + " days, it will be Monday"); 
            break;
        case 2: System.out.println("In " + dayselapsed + " days, it will be Tuesday"); 
            break;
        case 3: System.out.println("In " + dayselapsed + " days, it will be Wednesday"); 
            break;
        case 4: System.out.println("In " + dayselapsed + " days, it will be Thursday"); 
            break;
        case 5: System.out.println("In " + dayselapsed + " days, it will be Friday"); 
            break;
        case 6: System.out.println("In " + dayselapsed + " days, it will be Saturday"); 
            break;
}
    return 0;

    }

}

【问题讨论】:

  • 你的例子只是一个例子吗?还是你的问题?可以使用多种策略,具体取决于您的具体情况、本地化、日期相关、数学相关等。
  • 如果使用 java 8 检查这个stackoverflow.com/questions/18232340/…
  • 我想为用户输入的一周中的每一天分配一个 int 值(例如,如果用户输入“Sunday”,则将其分配给我选择的一个 int 值 - 零)。这样我就可以用零执行特定的计算,只有当用户输入“星期日”时。如果用户输入“星期一”,我将执行相同的计算,但使用 int 值 1。我想知道如何将“星期一”分配给 1,将“星期二”分配给 2,等等。
  • Tim 已经关闭了它,我无法回答这个问题,但最简单的方法是使用 JDK 中内置的名称。然后,您只需两行即可完成。 List dayNames = Arrays.asList(new DateFormatSymbols().getWeekdays()); return dayNames.indexOf(day) - 1;

标签: java string int


【解决方案1】:

你可以用这个方法

public class Day {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter today's day: ");
        String day = input.next();
        int todayDay = changeToString(day);
        System.out.println(todayDay);
    }

    public static int changeToString(String day) {
        int dayName = 0;

        switch (day) {
            case "Monday":
                dayName = 1;
                break;
            case "Tuesday":
                dayName = 2;
                break;
             ......
        }

        return dayName;
    }
}

【讨论】:

  • 这种情况下的主要方法是什么?
  • 你可以将这三行移到main方法中。
  • 答案已更新。
猜你喜欢
  • 1970-01-01
  • 2023-03-12
  • 2013-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多