Получение константы enum в качестве вывода с помощью ввода int - PullRequest
0 голосов
/ 04 декабря 2018

Мне нужно написать код, который выводит день недели, который является константой в перечислении.Входные данные являются целыми числами, а метод преобразует int в константу.Например, когда ввод равен 0, я должен получить воскресенье как вывод, а если число больше 6, то я должен использовать%, чтобы получить, например, от 8 до вторника.Как вывести определенную константу из enum?

Последние строки не верны, это идея, которую я не знаю, как реализовать

import java.util.scanner;

public class CalendarUtil{

    public static void main(String[] args){

        enum Months{
            JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER;
        }
        enum Weekdays{
            SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;
        }

        Scanner s= new Scanner();
        int day = s.nextInt();

        System.out.println(getNthWeekday(int day));

    }
    public static String getNthWeekday(int day){

        if (day≥0)%6 {
            return enum
        }

    }

}

Ответы [ 3 ]

0 голосов
/ 04 декабря 2018

Вы также можете сделать это так:

private static String getNthWeekday(int day) {

    Weekdays[] days = Weekdays.values();

    if (day >= days.length) {
        return days[day - days.length].name();
    } else {
        return days[day].name();
    }

}
0 голосов
/ 04 декабря 2018

Перечисления Java предоставляют ordinal() метод для каждого члена enum и values(), который позволит вам получить все члены.Вот предлагаемое решение:

public static Weekdays getNthWeekday(int day) {
    for (Weekdays d : Weekdays.values()) {
        if (d.ordinal() == day) {
            return d;
        }
    }
    throw new IllegalArgumentException("Unknown day: " + day);
}
0 голосов
/ 04 декабря 2018

Вы можете попробовать это

import java.util.Scanner;

class CalendarUtil{

    enum Months{
        JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER;
    }

    enum Weekdays{
        SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;
    }

    public static void main(String[] args){    
        Scanner s= new Scanner(System.in);
        int day = s.nextInt();
        System.out.println(getNthWeekday(day));
    }

    public static String getNthWeekday(int day){
     return Weekdays.values()[day%7].name();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...