You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java实现终端可编辑文本并存储至变量的技术方案咨询

Java实现终端可编辑的艺术家选择输入功能

要在Java里实现终端中可编辑的输入(允许用户修改已显示的当前选择),原生的Scanner或System.in无法支持这种实时编辑交互,得借助专门处理终端交互的库,JLine3是最常用的方案,下面是具体实现:

依赖引入(Maven)

<dependency>
    <groupId>org.jline</groupId>
    <artifactId>jline</artifactId>
    <version>3.24.1</version> <!-- 使用最新稳定版即可 -->
</dependency>

实现代码

import org.jline.reader.LineReader;
import org.jline.reader.LineReaderBuilder;
import org.jline.terminal.Terminal;
import org.jline.terminal.TerminalBuilder;

public class ArtistEditor {
    public static void main(String[] args) throws Exception {
        // 初始化终端实例
        try (Terminal terminal = TerminalBuilder.builder().system(true).build()) {
            LineReader reader = LineReaderBuilder.builder()
                    .terminal(terminal)
                    .build();

            String currentArtist = "example"; // 初始的艺术家选择值
            String prompt = "Your favourite artist is: ";

            // 读取用户可编辑的输入,传入初始值让用户直接修改
            String newArtist = reader.readLine(prompt, currentArtist);

            // 将新选择存储到变量,后续可按需使用
            System.out.println("\n已更新喜爱的艺术家为: " + newArtist);
        }
    }
}

功能说明

  • 运行程序后,终端会显示Your favourite artist is: example,光标停在example末尾
  • 用户可通过退格键删除原有内容,也可直接输入新内容覆盖,完全匹配你给出的操作示例流程
  • 输入完成按回车后,新内容会存入newArtist变量

关键细节

  • JLine3会自动适配Windows、Linux、macOS等不同系统的终端特性,无需额外处理跨平台兼容问题
  • 如果需要更复杂的逻辑(比如限制输入字符、添加自动补全),可通过扩展LineReader的配置实现

内容的提问来源于stack exchange,提问作者wyznel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 19:02:34