1

尝试使用 Jline 库终端的编写器时,我们遇到了一些问题。当我们尝试使用终端编写器的 print 语句编写字符串时,它会在字符串周围附加字符。

示例:打印时:terminal.writer().print("Username:"); 我们得到输出字符串为“�[?1l�>�[?1000l�[?2004lUsername:�[?1h�=�[?2004h”,因为我们只想得到“用户名:”作为输出。

我们通过设置“BRACKETED_PASTE_OFF”尝试了此链接https://github.com/jline/jline3/issues/181的解决方案。但这没有用。

4

1 回答 1

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);

于 2018-12-07T16:00:07.220 回答