Skip to content
Advertisement

How to solve Cannot invoke “String.compareTo(String)” because “[]” is null?

JavaScript

The sorting works on the id but i have problems in my names it wont push through the bubble sort and say its null, im just starting learning this language and it would be a great help. Ive been working on this since last night and ive tried transffering it under the if else(choice == 2) still it says null.

Choose a number of students: 2 Enter ID number 1: 123 Enter Student name 1: Mark JAw Enter Student course 1: JSJS —————————————- Enter ID number 2: 221 Enter Student name 2: Ak akw Enter Student course 2: jdj —————————————-

JavaScript

Advertisement

Answer

JavaScript

Suppose for example that you read in a value of 3 for n. This code means that you will allocate 3+1 = 4 elements in name (and likewise in the other arrays). You do not want to allocate 4 elements. You will read 3 names, so you want to allocate 3 elements.

The valid indices for your array will be 0, 1, 2 and 3. You do not want 3 to be a valid index for your array. You want only 0, 1 and 2 to be valid indices, which if you count, you will notice makes 3 different indices.

JavaScript

In this loop, you will use values of 1, 2 and 3 for i, and thus assign to indices 1, 2 and 3 of name (as well as the other arrays). You do not want to do this. The result is that name[0] will remain null. You want to start the loop at 0 so that you use every element of the arrays. You want to use i < n as your loop condition, because once you correctly only have n elements in the array, n is no longer a valid index.

JavaScript

When the exception happens, it happens because you correctly start scanning the array from the beginning, but have incorrectly filled (and sized) the array. You pull a null value out of the array (that shouldn’t be there) and try to .compareTo another value (which doesn’t work, because you can’t call a method on a null). A similar problem would occur (if you got that far) in your other sorting method.

(Unless it is for an assignment, you should not implement sorting yourself. You should use java.util.Arrays.sort.)

User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement