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

Java打印指定范围内偶数时如何去除输出末尾的多余逗号

Java打印指定范围内偶数去除末尾逗号解决方案

你的代码出现末尾多余逗号的核心原因是:每匹配到一个偶数就直接输出数值+逗号空格的固定格式,所有偶数都会带相同的后缀,自然最后一个偶数后会多出来逗号。你可以参考以下几种常用方案修改:


方案1:新增首元素标记位(兼容所有JDK版本,无额外依赖)

新增布尔变量标记是否是第一个输出的偶数,第一个偶数直接输出数值,后续偶数先输出分隔符再输出数值,从根源上避免末尾多余分隔符。
修改后代码如下:

import java.util.Scanner;

public class MyClass {
    public static void main(String args[]) {
        int integers;
        int sum = 0;

        System.out.println("Please input a positive integer: ");
        Scanner myList = new Scanner(System.in);
        integers = myList.nextInt();

        if (integers <= 0) {
            System.out.println("Invalid Input!!!");
        }
        else {
            System.out.println("Even number(s): ");
            // 新增首元素标记
            boolean isFirstEven = true;
            for (int i = 1; i <= integers; i++) {
                if (i % 2 == 0) {
                    if (isFirstEven) {
                        System.out.print(i);
                        isFirstEven = false;
                    } else {
                        System.out.print(", " + i);
                    }
                    sum = sum + i;
                }
            }
        }
    }
}

方案2:使用StringJoiner拼接结果(JDK 8+ 支持,代码更简洁)

JDK 8 新增的StringJoiner类专门用于带分隔符的字符串拼接,会自动处理首尾的多余分隔符,所有偶数拼接完成后统一输出即可。
对应逻辑代码片段:

else {
    System.out.println("Even number(s): ");
    StringJoiner sj = new StringJoiner(", ");
    for (int i = 1; i <= integers; i++) {
        if (i % 2 == 0) {
            sj.add(String.valueOf(i));
            sum = sum + i;
        }
    }
    System.out.print(sj);
}

方案3:使用Stream API实现(JDK 8+ 支持,函数式写法)

也可以用IntStream直接生成偶数流,一次性完成过滤、拼接操作:

else {
    System.out.println("Even number(s): ");
    String result = IntStream.rangeClosed(1, integers)
                   .filter(i -> i % 2 == 0)
                   .peek(i -> sum += i)
                   .mapToObj(String::valueOf)
                   .collect(Collectors.joining(", "));
    System.out.print(result);
}

注意这个方案需要额外导入java.util.stream.IntStream和java.util.stream.Collectors两个类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:54:02