Как возвращать массивы в операторе switch-case в языке Java?
Всем привет! Суть задачи:нужно реализовать публичный статический метод,который возвращает массив из двух элементов – названий выходных дней на английском. Метод принимает на вход параметр – формат возврата в виде строки. Всего существует два возможных значения:
"long" (по умолчанию) – массив содержит строки "saturday" и "sunday"
"short" – массив содержит строки "sat" и "sun"
Задачу нужно решать с использованием оператора switch-case Мое решение выглядит следующим образом:
class App {
public static void main(String[] args){
App.getWeekends("long");
}
public static void getWeekends(){
String[] day =new String[4];
day[0]="saturday";
day[1]="sunday";
day[2]="sat";
day[3]="sun";
switch(day){
case "long":
return {"saturday","sunday"};
case "short":
return {"sat", "sun"};
default:
return null;
}
}
}
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
public static String[] getWeekends(String day) {
switch(day) {
case "long":
return new String[]{"saturday", "sunday"};
case "short":
return new String[]{"sat", "sun"};
default:
return null;
}
}
или в ещё более кратком виде с использованием синтаксиса switch expression, который поддерживается полностью в Java 14 и выше:
public static String[] getWeekends(String day) {
return switch(day) {
case "long" -> new String[]{"saturday", "sunday"};
case "short" -> new String[]{"sat", "sun"};
default -> throw new IllegalArgumentException("Unknown day format: " + day);
};
}
Примечание: Вместо возврата null лучше выбросить исключение о неправильном входном параметре.