Unix менее похожа на прокрутку терминала в Java

По умолчанию, если выводится много текста, терминал прокручивается до самой последней строки, а затем пользователь должен прокручивать до конца, чтобы читать сверху. Мне нужен Java-подобный способ реализации прокрутки, предлагаемой в Unix-программе "less". Я хотел бы вывести много текста, чтобы пользователь мог начинать сверху и прокручивать вниз в своем темпе.

1 ответ

Решение

Это не реализация Less, но вот идея:

  • Разделите ваш вывод на несколько частей: очень длинный String => массив коротких строк (~10-15 строк);
  • Сделать цикл, ожидая пользовательского ввода для отображения следующей итерации
String s = "blahhh foo.... I'm a very long string, with long lines and
a lot of linebreaks...";

String[] looping = s.split("\n"); // whatever delimiter you need

for(int i = 0 ; i < looping.length ; i++) {
  // print 
  System.out.print(looping[i]);

  // wait for user input
  Scanner scanner = new Scanner(System.in);
  String a =  scanner.nextLine(); 

  // assigne a key to stop the loop before the end
  if(a.equalsIgnoreCase("X") // X, or whatever you want
  break;
}
Другие вопросы по тегам