2015-02-17 2 views
0

Недавно я написал программу, в которой мне пришлось использовать диалоговые окна для ввода входных и выходных данных. Вот одно из утверждений:метод printf и класс сканера

packageType = 
    JOptionPane.showInputDialog(Enter the customer's package (A,B, or C): "); 

Теперь я должен написать его снова, но вместо этого используйте метод printf. Я пробовал написать его так:

System.out.printf("Enter the customer's package (A, B, or C): %-10s", 
packageType = input.nextLine()); 

Я не могу заставить его работать, и я не уверен, что это правильный подход. Я новичок в Java, и я ценю помощь.

+2

вы действительно проходя 'packageType = input.nextLine() 'как параметр' System.out.printf'? – Jasper

+0

Да, я пытаюсь выяснить способ получения ввода и передать его в packageType, чтобы я мог использовать его снова в программе. – Maxx

+0

System.out.printf собирается блокироваться, ожидая ввода.nextLine(), чтобы завершить, прежде чем распечатать приглашение. Что вам нужно сделать, это выдать приглашение (System.out.printf), а затем прочитать из System.in. –

ответ

1

Я довольно новыми для Java сам, но это выглядит как простой способ сделать это будет:

Scanner input = new Scanner (System.in); 

System.out.println ("Enter the customer's package type: A, B, or C:"); 
packageType = input.nextLine(); 
System.out.printf ("The customer's package type is %s.", packageType); 

System.out.printf только для вывода текста. Он позволяет отформатировать его по-разному, но он не используется для захвата ввода. Этот пример на самом деле не делает много форматирования (это всего лишь письмо).

Надеюсь, это поможет.

Джим

+0

Вот что я думал, но мое задание говорит: вход/выход должен быть выполнен с использованием System.out.printf(), чтобы получить кредит (НЕ используйте методы System.out.println() или System.out.print() Я не смущен! Спасибо за ваш вклад. Maxx – Maxx

+0

Hi Maxx, Извините, я не видел этого раньше. Насколько мне известно, printf действительно используется для вывода - форматирование текста, цифр и т. Д. Вы можете принять вход после выхода printf, отправив вход пользователя в System.in. Я не уверен, какая польза от использования System.out.printf перед входом пользователя. Удачи! –

+0

Не беспокойтесь, я узнал что вы можете использовать pritnf так же, как println и print. Вам просто не нужен последний параметр. Например: \t \t System.out.printf ("Введите количество использованных часов : "); \t \t в течение нескольких часов; \t \t hours = keyboard.nextInt(); – Maxx

0

Printf может работать как печать и Println, если не включать второй параметр: System.out.printf("String", notInclude); Так закодировать его таким образом, чтобы пройти входной:

Scanner input = new Scanner(System.in); 

System.out.printf("Enter the customer's package type: A, B, or C:"); 
String packageLetter = input.nextLine(); 
Смежные вопросы