为了账号安全,请及时绑定邮箱和手机立即绑定

使用后初始化数组

使用后初始化数组

MMTTMM 2021-11-17 15:09:59
所以这是我的代码:import java.util.Arrays;import java.util.Scanner;public class Test9 {public static void main (String[] args) {    Scanner sc = new Scanner(System.in);    String invoer = null;    String[] sorteerArray = new String[25];    for (int i = 0; i < 25; i++) {        System.out.print (i + 1 );        invoer = sc.nextLine();        sorteerArray[i] = invoer;        if ("".equals(invoer)) {            break;        }    }    Arrays.sort(sorteerArray);    for (String sorteerArrayOutput : sorteerArray) {        System.out.println (sorteerArrayOutput);    }}}我得到一个 NullPointerException,因为当我尝试对我的数组进行排序时,数组中有空值,那是因为我用 25 初始化了我的数组。我知道问题是什么,我只是不知道如何解决它。提前致谢 :)。
查看完整描述

3 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

你可以


截断数组以删除null元素


String[] sorteerArray = new String[25];

int nbValue = 0;

for (int i = 0; i < 25; i++) {

    System.out.print (i + 1 );

    invoer = sc.nextLine();

    sorteerArray[i] = invoer;

    nbValue++;

    if ("".equals(invoer)) {

        break;

    }

}

sorteerArray = Arrays.copyOf(sorteerArray, nbValue);

Arrays.sort(sorteerArray);

用一个 List


List<String> sorteerList= new List<String>();

for (int i = 0; i < 25; i++) {

    System.out.print (i + 1 );

    invoer = sc.nextLine();

    sorteerList.add(invoer);

    if ("".equals(invoer)) {

        break;

    }

}

sorteerList.sort(Comparator.naturalOrder());


查看完整回答
反对 回复 2021-11-17
?
LEATH

TA贡献1936条经验 获得超6个赞

您可以使用“”初始化字符串数组。例如-


for(int i=0;i<25;i++){

    sorteerArray[i]="";

}

或者您可以使用集合即列表来拥有动态大小的数组。


查看完整回答
反对 回复 2021-11-17
?
Helenr

TA贡献1780条经验 获得超3个赞

想想如果你输入""第三个字符串会发生什么。


所以你的循环中断了,数组中的一些值仍然是String的默认值,在这种情况下是null.


这使得sort尝试与null其他字符串进行比较(您可以在线阅读如何.sort工作)。


要解决此问题,您应该在循环之前添加以下内容:


for (int i = 0; i < sorteerArray.length; i++) {

    sorteerArray[i]="";

}

如果您使用调试器检查代码,您将能够看到数组中的所有值,在 , 之后""都是null. 所以在sort运行时,它会比较数组的值,并在某个时候到达null,导致NullPointerException.


我上面写的代码将用空字符串初始化数组,以便可以比较它们。


查看完整回答
反对 回复 2021-11-17
  • 3 回答
  • 0 关注
  • 135 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信