0

默认情况下,如果输出大量文本,终端会向下滚动到最后一行,然后用户必须一直向上滚动才能从顶部阅读。我想要一种类似 Java 的方式来实现 Unix“less”程序中提供的滚动。我想要一种输出大量文本的方法,并且用户能够从顶部开始并以他们的速度向下滚动。

4

1 回答 1

1

这不是一个 Less 实现,但这里有一个想法:

  • 将输出分成几个部分:非常长的字符串 => 短字符串数组(~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;
}
于 2011-08-03T19:23:39.707 回答