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

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

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

这是代码。

            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+1个元素时就假设存在i个元素。因此,i+1转到null,而您不能.split null

08-17 00:00