如何移除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
相关产品推荐
相关产品推荐

