所以我知道使用控制台字符,您可以将光标返回到当前行的开头 (\r
) 或只是一个字符 (\b
) 覆盖。我想知道的是我用控制字符覆盖了多行。
我有一个点网格,打印到控制台:
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
然后回到第一个字符重新绘制
. . . . . . . .
. . . 0 . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
不确定这将使用哪种语言,这就是为什么我更喜欢使用字符的解决方案。
最佳答案
(以下所有内容仅适用于您自己不在 Swing JPanel 或类似工具中呈现输出的情况)
请注意,控制台输出单元的仿真级别非常有限。通常,您可以期望 Ctrl-H 退格,Ctrl-M 将光标返回到行首。超出此范围的任何内容都会设置额外的要求。
从历史上看,这是通过发送 ANSI 转义序列(物理 VT100 终端的近亲)来完成的,然后将其解释为移动光标、清除监视器的部分并切换颜色。您将需要类似的东西在输出设备中执行此操作。对于 Windows 中的 CMD.EXE,请参阅 How to make win32 console recognize ANSI/VT100 escape sequences?寻求建议。 Linux 和 OS X 终端仿真器支持这一点。
然后您可以自己生成转义序列 - 这对于简单的需求来说相对容易 - 或者委托(delegate)给 curses/ncurses 库来实现您的需要。
关于java - 用控制台字符删除多条控制台行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24740409/