java - JAVA排序时运行时错误

标签 java runtime-error

问题陈述:考虑一个数字字符串数组,其中每个字符串都是一个从 到 数字的正数。按实际整数值的非递减(即升序)顺序对数组元素进行排序,并在新行上打印排序数组的每个元素。

“由于输入数组由整数字符串组成,为了按升序对其进行排序,我们需要比较其中存在的每个元素,但由于整数采用字符串形式,因此需要将其转换为 Int 数据类型。

如果有人可以建议我代码中哪里出错了。我将不胜感激!

我不确定我的代码中是否存在逻辑错误,但在执行代码期间出现运行时错误“array IndexOutOfBounds”。

PS:我已经尽力了,但仍然无法找出我的错误。所以请不要否决其请求。

public static void main(String[] args)
    {
  int temp=0;;
    Scanner in = new Scanner(System.in);
    int n = in.nextInt();
    String[]arr = new String[n];//array of numeric string
    int[]array = new int[n];
    for(int unsorted_i=0; unsorted_i < n; unsorted_i++){
        arr[unsorted_i] = in.next();
    }
    for(int i=0;i<n-1;i++)//logic for sorting arrays
   {
   for(int j=0;j<n;j++)
       {
      array[i]  =Integer.parseInt(arr[i]);//arr is array of string datatype
       array[j]  =Integer.parseInt(arr[j]);
   if(array[i]>array[j])
       {
     temp=array[i];
       array[i]=array[j];
       array[j]=temp;
   }
 }
  }
    for(int i=0;i<n;i++)
    System.out.println(array[i]);
}
 }

Error: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 at Solution.main(Solution.java:23)

最佳答案

更改行for(int j=0;j<n;i++)for(int j=0;j<n;j++)

关于java - JAVA排序时运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44462677/

相关文章:

c++ - lua+luabind,栈顶无错误信息, "runtime error"之后

c - C 中的 Delete() 函数中的段错误(核心转储)

c - 运行时错误,Jolly 跳线

java - 如何在 java 中使用 bouncy caSTLe 以 ASN1 格式导出 X509Certificate?

java - Java 可以控制其他程序的窗口位置吗?

java不会进入for循环(不包括==)

java - 如何使用正则表达式验证字符串必须以字母开头,所有其他字符在java中可以是字母/数字/空格

java - 事件委托(delegate)模型和事件继承模型有什么区别?

javascript - Dynamics CRM 自定义表单事件 Javascript 中出现错误

python - Python-Kivy:SoundLoader.load不起作用