こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

java テキストをその場で表示して書き換え

日曜プログラマーです。
javaをCUIで利用してテキスト処理や計算に利用しています。

System.out.print()ではテキストを表示できますが、何回処理したかをこれで書き出すと右にずら~と連続して表示されてしまいます。printlnだと開業してだーっと文字が流れていってしまいます。

一つ前の書いた回数の部分だけを書き換える感じで同じ位置に「○回処理中」と出力するのはどうしたらよいでしょうか?

投稿日時 - 2018-06-09 11:06:49

QNo.9506586

暇なときに回答ください

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

#1です。
エスケープシーケンスについてですが、
これも#1に紹介しているのと同様プラットホーム依存(端末依存といった方がいいかもですが)です。
例えばWindowsはエスケープシーケンスをサポートしていません(32ビット版Windowsでしたら一応できますけど)

投稿日時 - 2018-06-09 13:12:14

エスケープシーケンスを勉強すればいいかもですね。
https://www.mm2d.net/main/prog/c/console-02.html
例えば、画面に
"data:001"と出したなら、カーソルは最後の”1”の次にいるわけなので、
そこで、カーソルを左に三回。これで最初の"0"の位置に来る。
後はお分かりですね?

投稿日時 - 2018-06-09 11:44:20

お礼

情報有り難うございます。調査してみます。

投稿日時 - 2018-06-09 12:10:17

ANo.1

プラットホーム依存になりますが文字'\r'は復帰(行頭に戻る)を意味します。
ですので
for (int i = 0; i < 10; i++) {
System.out.print("\r" + i);
}
のようにすると同一行で0~9を表示します。

投稿日時 - 2018-06-09 11:41:51

お礼

情報有り難うございます。調査いたします!

投稿日時 - 2018-06-09 12:10:38