Я пытался написать эту программу для одного из моих классов, и у меня возникла проблема с выводом. Предполагается, что он прочитает все, что я ввел для ввода Scanner. Однако вывод пропускает первое слово, и я не совсем уверен, почему. Вы можете игнорировать большинство объявлений переменных в основном методе. Они полезны только для остальной части программы.

public static void main(String[] args) {

    String fullName;
    int anniversaryM;
    int anniversaryY;
    int periodHours;

    String jobTitle;
    double payRate;
    int monthsWorked;
    double vacationHours;
    double grossPay;
    double retirement;
    double taxWithholding;
    double netPay;

    Scanner in = new Scanner(System.in); 

    fullName = inputLine(in, "Enter your full name:");
    System.out.print(fullName);
}

public static double inputNumber(Scanner input, String prompt) {

    Scanner in = new Scanner(System.in);

    in.nextDouble();
    return in.nextDouble();
}

public static String inputLine(Scanner input, String prompt) {

    Scanner in = new Scanner(System.in); 

    System.out.println(prompt);
    in.next();
    return in.next();
}

public static double calcPercentage(double grossPay, double retirement) {

    Scanner in = new Scanner(System.in);

    in.nextDouble();
    return in.nextDouble();
}

< Сильный > Вывод :

Введите свое полное имя:
Джон Доу
лань

0
Nicholas Sandore 24 Сен 2018 в 04:56

2 ответа

Лучший ответ

Вам дважды звонили в in.next(). Просто удалите его, и все будет в порядке. Кроме того, обратите внимание, что вы передаете Scanner методу, поэтому вам не следует создавать новый внутри метода:

public static String inputLine(Scanner input, String prompt) {
    System.out.println(prompt);
    return input.nextLine();
}
1
Mureinik 24 Сен 2018 в 02:02

Я думаю, ваша проблема в in.next(); return in.next();. в этом случае он вызовет средство чтения два раза, если вы хотите вернуть значение in.next();, вы должны поместить его в контейнер и вернуть этот контейнер или просто пойти прямо return in.next();

0
Ben Javellana 24 Сен 2018 в 02:10