在Java中在有限的时间内在输出中写一些东西

时间:2019-03-18 16:18:30

标签: java java-8 console-application

我正尝试打印一个字符串,仅持续1秒钟。

我要寻找的第一件事是一种删除控制台行的方法-终端,但是什么也没找到。

然后尝试退格5次,例如“ hello”,然后打印另一个字符串,如“''以删除hello字符串,但我找不到\b对于Java的工作原理。

现在我很困惑,如何才能真正解决我的问题。

对退格有任何想法吗? 还是删除已经打印的内容?

2 个答案:

答案 0 :(得分:1)

您可以通过将回车符\ r写入等于已打印字符串长度的数字来实现。它将把光标放回原处,但不会清除该行,但是当您编写新字符时,将被清除。

答案 1 :(得分:1)

我不确定是否确切了解您的需求,希望这段代码对您有所帮助:

class Main {
  public static void main(String[] args) throws InterruptedException {
    String text = "123456";
    System.out.print(text);
    Thread.sleep(1000); 
    backspace(text.length());
    Thread.sleep(1000);
    System.out.print(text); 
    Thread.sleep(1000);
    arrowLeft(3);
    Thread.sleep(1000);
    System.out.print(text);
  }

  public static void backspace(int number){
    for(int i=0; i<number; i++){
      System.out.print("\b \b");
    }
  }

  public static void arrowLeft(int number){
    for(int i=0; i<number; i++){
      System.out.print("\b");
    }
  }
}