Java调用StdOut.println仅打印空行不输出champ变量内容问题
问题根因与解决方案
你遇到的打印champ仅输出空行的问题,主要由以下两类常见原因导致:
- 未正确触发
StdIn的输入结束判定:algs4的StdIn.isEmpty()需要收到EOF(输入结束)标记才会返回true结束循环。你可以在输入完所有内容后,Windows环境按Ctrl+Z、macOS/Linux环境按Ctrl+D手动发送EOF信号,程序才会退出循环执行后续的打印逻辑。如果没有发送该信号,程序会一直卡在等待输入的状态,不会执行打印代码。 - 未给程序提供任何输入内容:如果你运行程序后没有输入任何字符串就发送了EOF,
champ会保留初始化的空字符串值,打印出来自然就是空行。
额外提示:你的类名为
RandomWord,如果是对应普林斯顿算法课的随机选单词作业需求,当前拼接所有输入字符串的逻辑不符合要求,需要调整为:每读取到第i个单词时,以1/i的概率将其赋值给champ,遍历结束后输出champ即可得到等概率随机选中的单词。
内容的提问来源于stack exchange,提问作者Aaron Fitch
相关产品推荐
相关产品推荐

