我从服务器打印一个字符串,其中包含多个' \ n'在其中,并希望在每条新消息之前清除屏幕。但是,以下代码会导致在单个字符串中的每一行之后清除屏幕。
while (true) {
String s = server.readLine();
if (s == null) {
throw new NullPointerException();
}
ConsoleCleaner.clean();
System.out.println(s.toString());
}
同样,s是一个包含多个' \ n'在其中导致打印一行并且每次都清除屏幕。
答案 0 :(得分:0)
我假设此处server
为BufferedReader
,因为您没有另行指定。并且出于BufferedReader.readLine()
的目的,没有“具有多个\n
的单个字符串”。当方法遇到第一个\n
时,这就是readLine()
的输出。
您可以通过跟踪打印的最后一条消息的非空白长度来避免此问题,并且仅在屏幕非零时清除屏幕。
答案 1 :(得分:0)
您能否根据自己的要求调整此示例?
Read all lines with BufferedReader
也许是这样:
String s;
while ((line = server.readLine()) != null) {
s += line + (System.getProperty("line.separator"));
}
ConsoleCleaner.clean();
System.out.println(s.toString());
没试过......