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

如何移除Java数组输出中数字19后的逗号?代码优化问询

解决Java数组遍历输出末尾多余逗号的问题

方案一:调整循环输出逻辑(基础兼容版)

核心思路是避免最后一个元素后输出逗号,可通过两种方式实现:

方式1:拆分首元素与后续元素输出

先输出第一个元素,之后从第二个元素开始,先输出逗号再输出数字:

class Main {
  public static void main(String[] args) {
    int numbers[] = {23, 79, 41, 68, 17, 39, 51, 75, 95, 19};
    System.out.print("Integer values: ");
    
    if (numbers.length > 0) {
      // 输出第一个元素,无前置逗号
      System.out.print(numbers[0]);
      // 从第二个元素开始,先输出逗号再输出数字
      for(int i = 1; i < numbers.length; i++){
        System.out.print("," + numbers[i]);
      }
    }

    int smallestNumber = numbers[0];
    for(int i = 0; i < numbers.length; i++){
      if (numbers[i] < smallestNumber){
        smallestNumber = numbers[i];
      }  
    }
    System.out.println("\nSmallest integer: " + smallestNumber);
  }
}

方式2:循环内判断是否为最后一个元素

在循环中检查当前元素是否是数组最后一个,只有非最后一个元素才输出逗号:

class Main {
  public static void main(String[] args) {
    int numbers[] = {23, 79, 41, 68, 17, 39, 51, 75, 95, 19};
    System.out.print("Integer values: ");
    
    for(int i = 0; i < numbers.length; i++){
      System.out.print(numbers[i]);
      // 仅当不是最后一个元素时输出逗号
      if(i != numbers.length - 1) {
        System.out.print(",");
      }
    }

    int smallestNumber = numbers[0];
    for(int i = 0; i < numbers.length; i++){
      if (numbers[i] < smallestNumber){
        smallestNumber = numbers[i];
      }  
    }
    System.out.println("\nSmallest integer: " + smallestNumber);
  }
}

方案二:使用StringJoiner(Java 8+)

Java 8提供的StringJoiner类专门用于处理字符串拼接,自动处理分隔符,无需手动判断:

class Main {
  public static void main(String[] args) {
    int numbers[] = {23, 79, 41, 68, 17, 39, 51, 75, 95, 19};
    
    // 初始化StringJoiner,指定分隔符为逗号
    StringJoiner joiner = new StringJoiner(",");
    for(int num : numbers) {
      joiner.add(String.valueOf(num));
    }
    System.out.println("Integer values: " + joiner);
    
    int smallestNumber = numbers[0];
    for(int num : numbers) {
      if (num < smallestNumber){
        smallestNumber = num;
      }  
    }
    System.out.println("Smallest integer: " + smallestNumber);
  }
}

方案三:使用Stream API(Java 8+)

结合Stream API可以更简洁地完成数组转字符串和最小值查找:

import java.util.Arrays;
import java.util.stream.Collectors;

class Main {
  public static void main(String[] args) {
    int numbers[] = {23, 79, 41, 68, 17, 39, 51, 75, 95, 19};
    
    // 用Stream将数组元素拼接为带逗号分隔的字符串
    String numStr = Arrays.stream(numbers)
                          .mapToObj(String::valueOf)
                          .collect(Collectors.joining(","));
    System.out.println("Integer values: " + numStr);
    
    // 用Stream直接查找最小值
    int smallestNumber = Arrays.stream(numbers).min().getAsInt();
    System.out.println("Smallest integer: " + smallestNumber);
  }
}

以上几种方法都能实现预期输出,其中基础循环方案兼容所有Java版本,StringJoiner和Stream API则更简洁高效,适合Java 8及以上版本使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 10:30:55