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

Java读取txt文件随机行实现猜词游戏 代码打印全部内容如何修复

问题原因

你当前代码出现全量打印单词列表的问题,核心是两个逻辑错误:

  • 前wordNumber-1次循环只做了i的递增,没有调用nextLine()跳过前面的行,Scanner的文件读取游标始终停留在文件开头位置
  • 命中目标行(i == wordNumber)后没有终止循环,会持续读取并打印后续所有行,直到文件读取结束

修复方案

修改findWord方法逻辑,完全符合你老师要求的「先取随机整数、用nextLine取随机单词、不使用数组」的规则,修改后代码如下:

public static void findWord(String secret) throws IOException
{
    File wordList = new File("wordlist.txt");
    Scanner wordListNew = new Scanner(wordList);

    int wordNumber = randomNum.nextInt(33735) +1;   
            
    for(int i = 1; i <= wordNumber; i++){
        String currentLine = wordListNew.nextLine();
        if(i == wordNumber){
            System.out.println(currentLine);
            // 后续需要把单词传回主方法的话,这里直接赋值给对应变量即可
            break;
        }
    }
    wordListNew.close();
}

补充说明

如果后续单词库的单词数量有调整,可以先逐行扫描一次文件拿到总行数,再基于总行数生成随机数,不用硬编码33735,避免出现随机数越界的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:15:03