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

咨询:使用Arrays.sort()时为何持续出现报错?

问题分析与解决

嘿,我来帮你捋捋这个问题~首先看你贴出来的代码,第一个直接导致报错的问题就是语法错误:

array[4] = askInput.nextInt...

这行末尾的...是完全不符合Java语法的,你应该把它改成askInput.nextInt();来收尾,不然编译器第一步就会报错,根本到不了调用Arrays.sort()的环节。


然后你提到用Arrays.sort()时一直报错,虽然你贴的代码里还没写出这个调用,但我给你列几个使用这个方法时最容易踩的坑,看看是不是你遇到的情况:

  • 忘记导入Arrays类:虽然你代码开头已经写了import java.util.Arrays;,但如果不小心删掉或者注释掉这行,编译器会直接报“找不到Arrays类”的错误,记得检查这行是否存在。
  • 数组未初始化就调用排序:要是你在调用Arrays.sort(array)之前,数组array只声明了但没初始化(比如只写了int[] array;没写new int[5]),会抛出NullPointerException。不过你的代码里已经正确初始化了数组,这个问题应该不存在,但还是提个醒~
  • 排序自定义对象数组但没实现Comparable:不过你这里用的是int[]基本类型数组,Arrays.sort()对基本类型数组的排序是原生支持的,不会有这个问题。但之后如果换成自定义对象数组,就得确保对象类实现Comparable接口,或者在排序时传入自定义比较器。

给你贴个修正后的完整代码,里面包含了Arrays.sort()的正确调用:

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

public class MyClass {
    public static void main(String[] args) {
        int sum = 0;
        System.out.println("I will ask you to add 5 integers and I will add 5 to each integer.\n");
        Scanner askInput = new Scanner(System.in);
        System.out.println("Please enter 5 integers:");
        int[] array = new int[5];
        array[0] = askInput.nextInt();
        array[1] = askInput.nextInt();
        array[2] = askInput.nextInt();
        array[3] = askInput.nextInt();
        array[4] = askInput.nextInt(); // 修正语法错误,替换掉无效的...

        // 调用Arrays.sort()对数组升序排序
        Arrays.sort(array);
        System.out.println("\nSorted array (ascending):");
        for (int num : array) {
            System.out.print(num + " ");
        }

        askInput.close(); // 记得关闭Scanner,避免资源泄漏
    }
}

如果你有更具体的报错提示(比如IDE弹出的错误信息、控制台的堆栈日志),可以补充出来,这样能更精准地解决你的问题哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:48:58