Я считаю, что проблема заключается в том, что в требованиях конкретно указано, что вы должны написать метод с именем inputBirthday
, который принимает объект Scanner
. Вы написали main
метод, а затем метод inputBirthday
, который принимает String, int, int
.
Переместите код из метода main
в метод inputBirthday
, избавьтесь от создания экземпляра сканера и измените метод inputBirthday
, чтобы принять сканер (возможно, inputBirthday(Scanner abc)
.
Код, как написано, работает в intellij, потому что это полная программа. Но для сайта они ожидают определенного метода подписи. Этот подход не отличается от того, что ожидают leetcode
или другие подобные он-лайн кодовые места.
ФП внес изменения, но опять же требования предусматривают, что подход должен выглядеть примерно так:
public void inputBirthday(Scanner abc) {
System.out.println("On what day of the month were you born? ");
int inputDay = abc.nextInt();
System.out.println("What is the name of the month in which you were born? ");
String inputMonth = abc.next();
System.out.println("During what year were you born? ");
int inputYear = abc.nextInt();
System.out.println("You were born on " + inputMonth + " " + inputDay + "," + " " + inputYear + "." + " You're mighty old!");
}
Итак, еще раз:
- получить сигнатуру метода, соответствующую требованию (неясно, должен ли он быть статическим, поэтому может потребоваться
public static inputBirthday(Scanner abc)
).
- Не запускайте сканер методом
inputBirthday
.
Для тестирования из IDE:
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// either instantiate the enclosing class, or make inputBirthday static
inputBirthday(in);
}