Java更新一行而不是整个屏幕

时间:2019-10-09 20:34:24

标签: java line screen system.out

我想知道在扫描firstName之后如何更新First_name,然后在扫描lastName之后如何更新Last_name。不重写整个行,我不知道该怎么做。

public class Main {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        System.out.print("First_name ");
        System.out.println("Last_name");

        System.out.println("Enter First name: ");
        String firstName = scan.nextLine();

        System.out.println("Enter Last name: ");
        String lastName = scan.nextLine();
    }
}

1 个答案:

答案 0 :(得分:0)

无法通过动态更改文本来执行所需的操作。用System.out.println()写入输出会将其写入控制台,此后,它将不受您的控制。任何语言都是这种情况。

您可以在重新编写所有内容之前清除控制台,这将使它看起来更加动态。这样做看起来像这样:

public static void clearScreen() {  
    System.out.print("\033[H\033[2J");  
    System.out.flush();  
}  

即使它不能解决您原来的问题,但我还是想用这篇文章指出回车符的使用:

System.out.print("This is a test-string!");
System.out.println("\rThis string will overwrite that string!");

回车符(在Java中用作\r)会将光标重新放在行的开头。这将覆盖原始字符串。此代码的输出将是:

This string will overwrite that string!