0

高さが 30 行の端末があるとします。

そして、100行の出力を出力するループがあるとします

for(int i=0; i<100; i++){
  System.out.println(i);
}

最初の 30 行を出力し、「Enter キーを押して出力を続行します...」というテキストを表示し、ユーザーが Enter キーを押したときに次の 30 行を表示する方法はありますか?

できるだけ簡単な方法でこれを行いたいです。less何とか使えるようになれば最高です。


アップデート

これは、Java ソース コードに実装する必要があります。以下は適切な解決策ではありません。

java program | less'

また、実行されている端末の高さをプログラムで取得する必要があります。

4

3 に答える 3

2

少ないで:

java program | less

また

for(int i=0; i<100; i++){
    if( i % 30 == 0) {
       System.out.println("Press enter to continue output...");
       System.in.read();
    }    
    System.out.println(i);   
}
于 2011-10-13T07:11:54.420 に答える
2

Java内:

BufferedReader r = new BufferedReader(new InputStreamReader(System.in));

for(int i=0; i<100; i++){
    if (i % 30 == 0) {
        System.out.println("Press enter to continue output...");
        r.readLine();
    }
    System.out.println(i);
}
于 2011-10-13T07:12:47.873 に答える
1

tput colsコマンドライン引数またはシステム プロパティ (java -DTermHeight=`tput cols`) として Java プログラムに渡すか、実行時に次を使用して取得します。Runtime.getRuntime().exec("tput cols")

その値を変数に格納しますheight。今

   height = (height==0?30:height);
    for(int i=1; i<=100; i++) {
        if (i % height== 0) {
            System.out.println("Press enter to continue output...");
            System.in.read();
        }
        System.out.println(i);
    }
于 2011-10-13T07:49:04.157 に答える