Java编程问题:修改阈值过滤程序实现带末尾逗号的输出
问题:如何让符合条件的每个输出值后都带逗号(包括最后一个)
需求回顾
编写程序从输入获取整数列表:
- 输入开头的整数表示后续整数的数量
- 最后一个输入值作为阈值
- 输出所有小于等于该阈值的整数,每个值后必须带逗号(包括最后一个符合条件的值)
示例:输入5 50 60 140 200 75 100时,预期输出为50,60,75,
现有代码问题
现有代码的输出为50,60,75,缺少最后一个逗号,不符合格式要求。问题出在逗号的判断逻辑:
if (i < numIntegers - 1) { System.out.print(","); }
这个条件是基于数组的索引位置判断,而非元素是否为最后一个符合条件的值。只要当前循环的索引不是数组倒数第二个,就加逗号,但最后一个符合条件的元素(比如示例中的75)刚好是数组最后一个元素,此时i < numIntegers - 1不成立,所以不会添加逗号。
修复方案
直接去掉多余的逗号判断,只要元素符合条件,就输出元素+逗号,无需额外判断位置。
修改后的完整代码:
import java.util.Scanner; public class LabProgram { public static void main(String[] args) { Scanner scnr = new Scanner(System.in); int[] userValues = new int[20]; int numIntegers = scnr.nextInt(); for (int i = 0; i < numIntegers; ++i) { userValues[i] = scnr.nextInt(); } int threshold = scnr.nextInt(); for (int i = 0; i < numIntegers; ++i) { if (userValues[i] <= threshold) { // 直接输出元素和逗号,无需判断位置 System.out.print(userValues[i] + ","); } } } }
效果验证
输入示例5 50 60 140 200 75 100时,程序会输出50,60,75,,完全符合需求格式。
内容的提问来源于stack exchange,提问作者Corey Saunders
相关产品推荐
相关产品推荐

