Jline库终端在尝试使用其writer时遇到一些问题。当我们尝试使用终端编写器的print语句编写字符串时,它会在字符串周围附加字符。
示例:
打印时:terminal.writer().print("Username:");
我们得到的输出字符串为“ [[?1l ...]。[?1000l。[?2004lUsername:。[?1h。== [?2004h]],在这里我们只想获取” Username:“作为输出。 / p>
我们通过设置“ BRACKETED_PASTE_OFF”尝试了来自此链接https://github.com/jline/jline3/issues/181的解决方案。但这没用。
答案 0 :(得分:0)
我知道了,我不得不使用printAbove来删除读取一行时添加的字符串,并将BRACKETED_PASTE设置为false来删除在清理阶段添加的括号:
final TerminalBuilder builder = TerminalBuilder.builder(); builder.jansi(false);
builder.streams(in, out);
terminal = builder.build();
reader = LineReaderBuilder.builder().terminal(terminal).build(); reader.option(BRACKETED_PASTE, false);
reader.printAbove(StringToPrint);
terminal.writer().print(StringToPrint);