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

Java新手求助:程序输出结果错误,如何获取目标格式输出?

问题分析与解决

嘿,我来帮你搞定这个问题!你现在的输出问题根源出在最后一个循环的逻辑上:

  • 你写了arr[i]+","+arr[i],这会把同一个元素重复拼接两次,自然就出现了[5,5]这种重复元素的输出
  • 完全没有处理两两分组的逻辑,只是单纯逐个遍历输出每个元素

接下来我给你修正后的代码,同时拆解关键步骤帮你理解:

修正后的完整代码

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter Array Size:");
        int arrSize = sc.nextInt();
        System.out.println("The Size of your Array is " + arrSize);
        int arr[] = new int[arrSize];
        System.out.println("Enter " + arrSize + " Elements of your Array: ");
        for (int i = 0; i < arr.length; i++) {
            arr[i] = sc.nextInt();
        }
        // 打印原数组
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println(" ");
        
        // 核心修正:倒序两两分组输出
        int i = arr.length - 1;
        while (i >= 0) {
            if (i > 0) {
                // 还有下一个元素,输出两两一组
                System.out.print(Arrays.asList(arr[i] + "," + arr[i-1]) + " ");
                i -= 2;
            } else {
                // 只剩最后一个元素,单独输出
                System.out.print(Arrays.asList(String.valueOf(arr[i])) + " ");
                i--;
            }
        }
    }
}

关键修正点解释

  1. 修复重复元素问题:把arr[i]+","+arr[i]改成arr[i] + "," + arr[i-1],这样每次取当前元素和它的前一个元素组成一组,避免重复
  2. 添加分组逻辑:用while循环从数组末尾开始遍历,每次向后跳2个元素:
    • 当i > 0时,说明当前元素前面还有元素,输出[当前元素, 前一个元素]的格式
    • 当i == 0时,说明只剩这一个元素,单独输出[当前元素]
  3. 保持格式一致:继续用Arrays.asList()来生成你想要的带方括号的输出格式

举个例子,如果你输入数组长度5,元素依次是1 2 3 4 5,运行后就会输出:

1 2 3 4 5  
[5,4] [3] [2,1] 

如果输入数组长度4,元素1 2 3 4,则输出:

1 2 3 4  
[4,3] [2,1] 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:29:33