gpt4 book ai didi

java - 尝试对字符串数组进行排序时插入排序崩溃

转载 作者:行者123 更新时间:2023-12-02 03:55:49 24 4
gpt4 key购买 nike

我有以下程序,我尝试实现插入排序来对字符串数组进行排序:

import java.util.Scanner;

public class InsertionSort {
public static Scanner console = new Scanner(System.in);

public static void main(String[] args) {
System.out.print("How long do you want your array to be? ");
int arraySize = console.nextInt();
String a[] = arrayOfStrings(arraySize);
System.out.println("Here is the sorted data: ");
**insert(a, arraySize);**


}

public static String[] arrayOfStrings(int size) {
String a[] = new String[size];
int i = 0;

do {
System.out.print("Input a string: ");
String input = console.next();

input = a[i];
i++;

} while(i < size);

return a;
}

public static void insert(String[] a, int size) {
**String temp = a[size];**
int j = size - 1;

while (j >= 0 && a[j].compareToIgnoreCase(temp) > 0) {
a[j + 1] = a[j];
j--;
}
a[j + 1] = temp;
}
}

当我运行该程序时,它完全崩溃了。我在标有星号的行上收到越界异常和一些“NativeMethodAccessorImpl”错误。我很确定问题出在我的插入排序中,但我无法弄清楚到底在哪里以及为什么,因为越界错误对我来说没有意义。我正在尝试对用户给出的字符串进行排序,并将它们按字母顺序从 a-z 排列。

最佳答案

尝试像这样编写你的方法:

  public static void insert(String[] a) {
String temp = a[a.length-1];
int j = a.length - 1;

关于java - 尝试对字符串数组进行排序时插入排序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35469752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com