2013-03-07 5 views
5

Скажем, я делаю интерфейс командной строки. Я хочу распечатать строку, а затем изменить ее. Например, когда вы запускаете программу, она выводитМожно ли вызвать println на Java?

Hello, World! 

Через несколько секунд, однако, сообщение получает изменено на:

Hello, Computer User! 

Возможно ли это? Предпочтительно использовать Cross-OS.

+1

Посмотрите "проклятий" - см http://stackoverflow.com/questions/439799/whats- a-good-java-curses-like-library-for-terminal-applications – 2013-03-07 06:22:02

+1

@pst - curses не является перекрестной ОС. –

+0

@TedHopp Но эквивалентная реализация Java (или такая же, как и следовало ожидать) - добавленная ссылка была найдена через '[java] curses' довольно тривиально. – 2013-03-07 06:23:34

ответ

5

Вы можете повторить команду escape-последовательности \b, которая является обратным пространством, а затем выписать новое сообщение вместо старого.

Обратите внимание, что это не может быть полностью кросс-платформенным, поскольку это до самой консоли и как она интерпретирует \b, но она должна работать в основном.

+0

Я не знал, что это существовало. Огромное спасибо. Я собираюсь попробовать это сейчас. – Piccolo

3

попробовать

String s1 = "Hello, word!"; 
    System.out.print(s1); 
    Thread.sleep(1000); 
    for(int i = 0; i < s1.length(); i++) { 
     System.out.print('\b'); 
    } 
    System.out.print("Hello, computer user"); 

к сведению, что он не работает с Eclipse, запустить его из командной строки