Реализовать методы
boolean isWeekend(String dayName) - метод принимает строку и отвечает, является ли данная строка выходным днем. Выходным днем являются Sunday и Saturday.
int weekendCount(String[] days) - метод принимает массив строк и возвращает количество выходных дней в этом массиве.
int weekdayCount(String[] days) - метод принимает массив строк и возвращает количество будних дней в этом массиве.
public static boolean isWeekend(String dayName) { if (dayName == "Monday") { return false; } else if (dayName == "Tuesday") { return false; } else if (dayName == "Wednesday") { return false; } else if (dayName == "Thursday") { return false; } else if (dayName == "Friday") { return false; } else if (dayName == "Saturday") { return true; } else return dayName == "Sunday"; } public static int weekendCount(String[] days) { int weekend = 0; for (int i = 1; i < days.length; i++) { if (isWeekend(days[i])) { weekend++; } } return weekend; } public static int weekdayCount(String[] days) { int weekday =0; for (int i = 1 ; i < days.length; i++) { if (isWeekend(days[i])) { weekday++; } } return weekday; }Тест провален. Некорректная реализация метода weekendCount. В массиве было 3 выходных
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
- Достаточно проверить, равна ли входная строка
"Sunday"или"Saturday"(без учёта регистра), ещё пять проверок для будних дней не обязательны. - Нумерация индексов для массивов начинается с 0, а не с 1, нужно будет исправить циклы в методах
weekendCount,weekdayCount, или вообще лучше использовать циклforeach, чтобы не ошибаться в индексах.
Также можно передавать массивы в методы в виде vararg аргументов (с многоточием), тогда можно упростить вызовы таких методов.
public static boolean isWeekend(String dayName) {
return "Saturday".equalsIgnoreCase(dayName) || "Sunday".equalsIgnoreCase(dayName );
}
public static int weekendCount(String ... days) {
int weekend = 0;
for (String day : days) {
if (isWeekend(day)) {
weekend++;
}
}
return weekend;
}
Вариант с использованием Stream API:
public static int weekdayCount(String ... days) {
return (int) Arrays.stream(days).filter(d -> !isWeekend(d)).count();
}