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

如何在Java中实现控制台逐词输出?

控制台逐词输出实现方案

基于你现有的逐行输出代码,只需在遍历每行的逻辑里,把每行拆分为单词后逐个输出即可,同时调整输出方式和等待间隔,让效果更自然:

private void intro() {
    try {
        List<String> allLines = Files.readAllLines(Paths.get("src/resources/GameStoryIntro.txt"));
        // 定义单词输出的间隔时间(毫秒),可按需调整
        int wordDelay = 500;
        // 定义换行后的等待时间(毫秒)
        int lineDelay = 2000;
        
        for (String line : allLines) {
            // 按空格拆分单词,处理多个连续空格的情况
            String[] words = line.split("\\s+");
            for (String word : words) {
                Thread.sleep(wordDelay);
                // 使用print而非println,让单词在同一行输出,末尾加空格分隔
                System.out.print("\033[31m" + word + " \033[0m");
                // 强制刷新输出缓冲区,避免内容堆积不显示
                System.out.flush();
            }
            // 整行单词输出完后换行,再等待指定时间
            System.out.println();
            Thread.sleep(lineDelay);
        }
    } catch (IOException | InterruptedException e) {
        e.printStackTrace();
    }
    subMenu();
}

关键修改点说明:

  • 使用split("\\s+")拆分每行:\\s+匹配一个或多个空白字符,能处理文本中多个连续空格的情况,避免输出空字符串。
  • 替换println为print:保证单词在同一行连续输出,每个单词后加空格保持格式。
  • 增加System.out.flush():强制刷新输出缓冲区,确保单词能及时显示,不会因为缓冲区缓存导致内容一次性输出。
  • 区分单词间隔和换行间隔:可以分别调整wordDelay和lineDelay参数,让输出节奏更符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:15:41