正在尝试在 java 中清屏

Trying to clear screen in java

我正在打印来自服务器的单个字符串,其中包含多个 '\n' 并且想在每条新消息之前清除屏幕。但是,以下代码会导致在单个字符串中的每一行之后清除屏幕。

while (true) {
    String s = server.readLine(); 

    if (s == null) {
      throw new NullPointerException();
    } 
    ConsoleCleaner.clean();
    System.out.println(s.toString());

  }

同样,s 是一个内部有多个 '\n' 的字符串,导致每次打印一行并清除屏幕。

我假设 server 在这里是 BufferedReader,因为您没有另外指定。而为了 BufferedReader.readLine() 的目的,没有 "a single string with multiple \n" 这样的东西。当方法遇到第一个 \n 时,就是 readLine().

的输出

您可以通过跟踪最后打印的消息的非空白长度并仅在非零时清除屏幕来避免此问题。

您能否修改此示例以满足您的要求?

大概是这样的:

String s;
while ((line = server.readLine()) != null) {
    s += line + (System.getProperty("line.separator"));
}
ConsoleCleaner.clean();
System.out.println(s.toString());

没试过这个...