gpt4 book ai didi

java - 对字符串数组进行排序会出现 NullPointerException

转载 作者:太空宇宙 更新时间:2023-11-04 06:15:05 26 4
gpt4 key购买 nike

您好,我已经实现了这个基本程序,该程序应该对插入的字符串进行排序,但不知何故无法插入字符串。例如,如果我实现:

TestSort t = new TestSort();
t.i("abc");
t.i("aab");

任何人都可以看到该错误并帮助我修复此错误吗?

谢谢

<小时/>

这是代码:

public class TestSort {
private int length;
String[] data;

public TestSort() {
length = 0;
}

public void i(String value) {
data[length] = value;
setSorted(data);
length++;
}

public void setSorted(String data[]) {
for(int i = data.length-1; i >= 0; i--) {
for(int j = 0; j < i; j++) {
if(data[j].compareTo(data[j + 1]) > -1) {
String temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
}

for(int i = 0; i < data.length; i++) {
System.out.print(data[i] +" ");
}
}
}

最佳答案

您没有初始化数组数据。因此它被设置为 null,并且使用 data[i] 进行访问将得到一个 NullPointerException。即使你初始化这个字段,它也不起作用,因为Java中的数组有固定的大小,如果你插入一个新值,你必须重新分配数组。您应该尝试使用列表实现。

因此代码应该在构造函数中初始化:

data = new ArrayList<String>();

并且插入将更改为

data.add(value);

关于java - 对字符串数组进行排序会出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28191846/

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