Java: заполнение Scanner значением по умолчанию для Scanner.nextLine ();

1

Я пишу java-программу, которая запускает цикл и продолжает запрашивать у пользователя ввод. Затем программа выполняет кучу вещей со строкой и запрашивает другую строку и повторяет.

Проблема в том, что многие строки очень похожи, поэтому я хотел бы заполнить приглашение вводом из последнего раза в цикле. Например: если пользователь вводит значение следующим образом:

Enter the SKU Number: APE-6603/A

... Затем в следующий раз, когда он запросит SKU, он будет ждать, пока пользователь нажимает кнопку ввода, как обычно, но будьте готовы с последним значением до того, как пользователь даже наберет что-нибудь:

Enter the SKU Number: APE-6603/A

... И пользователь может сделать простые изменения очень быстро, как заменить /A на /B и нажать enter! Если строка, содержащая пользовательский ввод, называется "lookFor", есть ли способ заполнить приглашение этим значением в Java? Было бы очень полезно!

Благодарю!

Теги:
string
java.util.scanner
default

3 ответа

0
Лучший ответ

После обсуждения этой идеи с несколькими людьми, кажется, что я хочу, это невозможно. Способ ввода слишком прост, чтобы что-то подобное.

Мои единственные возможные решения включают в себя не выполнение этого из моей среды IDE. Я могу либо выбрать использовать мое приложение, либо изменить приложение в апплет на основе графического интерфейса. Запуск с консоли откроет опцию "Нажать вверх", как это было предложено rchirino, и с помощью графического интерфейса позволит ввести введенное значение для редактирования позже.

Если кто-то хочет сделать то, что я написал выше, ответ будет "Java can not do it!". Сожалею. :)

0

Возможно, вы захотите попробовать что-то вроде этого:

public String promptandgetWithShowDefault(String prompt, String supplied) {
  String prmpt = prompt + " (press Enter for \"" + supplied + "\"):";
  String tmpch = null;
  System.out.print(prmpt);
  tmpch = scanner.nextLine().trim();
  if (tmpch == null || tmpch.equals("")) {
     return supplied;
  } else {
     return tmpch;
  }
}
-1

Думаю, я понимаю, что вы хотите сделать, но это довольно просто. Если ваша программа является консольным приложением (командной строки), которое я предполагаю, вам просто нужно нажать клавишу ВВЕРХ, чтобы заполнить приглашение последними введенными символами.

Если вы работаете с элементами GUI, вы можете проверить документацию API для определенного класса объекта, который вы используете, и проверить его.

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

  • 0
    У вас правильная идея! ... На самом деле, я запускаю свое приложение из IDE (NetBeans). Я полагаю, что мог бы вызвать скомпилированный файл JAR, но id предпочел бы иметь возможность оставаться в моей среде IDE, которая не поддерживает функцию «Нажми для отзыва». Нажатие вверх просто помещает курсор вверх на одну строку в выводе программы. Есть ли способ заполнить подсказку заданной строкой по умолчанию без нажатия клавиши пользователя, как вы предлагаете? :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню