所以,基本上我想做的是有一个百分比。因此它上升了0%,1%,依此类推,但我希望不将其全部打印出来,而是将%1%替换为2%。所以我知道如何执行基本的for循环,但是我不知道如何使用\r\b,因为在我的编译器中,我得到的只是将其全部打印在一行中。

package test;

public class est
{
    public static void main(String[] args)
    {
        for(int i = 0; i <= 100; i++ )
        {
            System.out.print("\rPercent = " + i + "%");
        }
    }
}

输出:
Percent = 0%
Percent = 1%

...
Percent = 99%
Percent = 100%

这样就打印了100行;但我只希望将这些信息放在一行上。

最佳答案

简单的答案是:当您努力提供“增强的用户体验”时,System.out不是适当的基础。也许在这种情况下,因为您可以使用\ r在同一行上删除。但是,一旦您需要/想要做一个 println(),上下文就固定了;而且您无法再更改。

即使这样:“返回”和擦除信息也无法在每种平台上都可以进行。

您有三种选择:

  • 只需接受它。在现实世界中,命令行输出通常很难看,大多数人都接受。
  • 查看基于“curses”的库,因为这些库允许“放置”和“重置”“cursor”。但实际上我无法说出这些库在平台上的独立性。
  • 下降了整整九码,并考虑创建一个真正的向导。但是,当然,这是解决问题的最昂贵的方法。
  • 10-07 16:31
    查看更多