java - 尝试冒泡排序时出现空指针异常

标签 java nullpointerexception bubble-sort

我正在编写一个涉及对字符串进行标记的冒泡排序方法,但我不断收到一个神秘的空指针异常。

该方法采用字符串数组。每个字符串包含四个标记:姓氏、名字、社会安全号码和年龄。该方法需要能够按这些标记中的任何一个进行排序,因此它将每个字符串分解为标记,将标记放入数组中,然后使用冒泡排序对标记进行排序,根据标记排序重新排列数组中的每个字符串。

当我尝试将第二个字符串拆分为标记并将其保存到数组时,会发生错误。

这是代码。

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


              String s1 = sortedArray[i];
              String s2 = sortedArray[i+1];

              String[] holdingArray1;
              String[] holdingArray2;

              holdingArray1 = s1.split("\\s+");
              holdingArray2 = s2.split("\\s+");



              int result = holdingArray1[0].compareTo(holdingArray2[0]);



              if (result > 0)
              {

                  sortedArray[i] = s2;
                  sortedArray[i+1] = s1; 
              }


              System.out.println(sortedArray[i]);
              System.out.println(sortedArray[i+1]);
            }

最佳答案

i 可能小于 array.length,但 i+1 可能不会。当您仅检查是否存在 i 元素时,您就假设存在 i+1 元素。因此,i+1 会变为 null,并且您不能 .split null

关于java - 尝试冒泡排序时出现空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10307184/

相关文章:

java - 如何使用 Java Optional 来防止读取未初始化的数组?

android - 无法启动服务 [服务名称] 为 null

java - 对整数数组进行排序,同时它具有用于记分板的字符串数组

c++ 使用结构排序

java - 如何在产品配置文件中的 jhipster 应用程序上启用 swagger ui?

java - 如何使用socket channel 发送文件名和文件内容

java - 即使 hashcode() 相同,HashMap<Node, Integer> get 也会返回 null

c - STRUCT C 编程中的按字母顺序冒泡排序

java - 从可执行 Jar 运行外部程序

java - 从 Eclipse 与系统设置环境变量