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

Java交换数组元素报错:不兼容的类型,找到'int'需要'int[]'

错误原因
  • 报错触发在代码行 int[] arr = input.nextInt();
  • Scanner类的nextInt()方法返回值为单个int类型整数,你直接将其赋值给int[]数组类型的变量arr,二者类型不匹配,因此编译器抛出Incompatible types. Found: 'int', required: 'int[]'错误。
解决方法

你需要先读取数组长度完成数组初始化,再循环读取所有元素存入数组,同时建议增加索引合法性校验,避免后续交换元素时触发数组越界异常,修正后的代码如下:

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

public class SwapingValues {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        // 先读取数组长度
        System.out.print("请输入数组长度:");
        int length = input.nextInt();
        int[] arr = new int[length];
        // 循环读取数组元素
        System.out.println("请输入" + length + "个整数,空格分隔:");
        for (int i = 0; i < length; i++) {
            arr[i] = input.nextInt();
        }
        // 索引合法性校验
        if (length > 5) {
            swap(arr,1,5);
            System.out.println(Arrays.toString(arr));
        } else {
            System.out.println("数组长度不足,无法交换索引1和5的元素");
        }
        input.close();
    }
    static void swap(int[] arr, int index1, int index2) {
        int temp = arr[index1];
        arr[index1] = arr[index2];
        arr[index2] = temp;
    }
}

注意:原代码中直接写死交换索引1和5,只有当数组长度≥6的时候才合法,因此新增了长度判断逻辑,你可以根据实际需求调整交换的索引值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:06:03