Я использую этот код для вывода текста и нажмите кнопку , введите, чтобы отобразить следующую строку диалога. Однако одно нажатие Введите показывает две строки текста. Почему это?Нажмите enter, чтобы продолжить странности (Java)
public void pressEnterToContinue() {
try {
System.in.read();
} catch(Exception e) { }
}
Для справки, метод называется так:
pressEnterToContinue();
System.out.println("This is a line of text.");
pressEnterToContinue();
System.out.println("So is this.");
pressEnterToContinue();
System.out.println("And this.");
//etc.
В первой строке отображается одна «Это строка текста.» Метод ждет, пока пользователь не нажмет кнопку ввода, затем отобразит следующие две строки («Это так» и «И это»), когда он должен отображать только один.
Я попытался выполнить небольшую задержку, но это не решило проблему.
Это дает мне ошибку «Метод readLine() не определен для метода InputStream. Рекомендуемые исправления:« Изменить на чтение (..) »(мы знаем, что это не план) и« добавьте Cast to System, in », делая строку \t try {((BufferedReader) System.in) .readLine(); Это дает мне новую ошибку «Нельзя отбрасывать из InputStream в BufferedReader» – 4oursword
А ... Да, забыл об этом. System.console(). readline() работает, но см. ответы здесь для дальнейшего обсуждения и различных подходов: http://stackoverflow.com/questions/4644415/java-how-to-get-input-from-system-console Я обновил свой ответ чтобы отразить это. –
System.console(). readline() отображает все строки текста сразу, как только вызывается метод. – 4oursword