I have a homework question I need help with
We have been given a text file containing one word per line, of a story. We need to read this file into an array, perform a sort on the array and then perform a binary search.
The task also says I'll need to use an overload method, but I'm unsure where
I have a bubble sort, that I've tested on a small array of characters which works
public static void bubbleV1String(String[]numbers)
{
    for(int i = 0; i < numbers.length-1; i++)
    {
        for(int j = 0; j < numbers.length-1; j++)
        {
            if(numbers[j] .compareTo(numbers[j+1])>0)
            {
                String temp = numbers[j+1];
                numbers[j+1] = numbers[j];
                numbers[j] = temp;
            }
        }
    }
}`
And my binary search which I've tested on the same small array
    public static String binarySearch(int[] numbers, int wanted)
{
    ArrayUtilities.bucketSort(numbers);
    int left = 0;
    int right = numbers.length-1;
    while(left <= right)
    {
        int middle = (left+right)/2;
        if (numbers[middle] == wanted)
        {
            return (wanted + " was found at position " + middle);
        }
        else if(numbers[middle] > wanted)
        {
            right = middle - 1;
        }
        else
        {
            left = middle + 1;
        }
    }
    return wanted + " was not found";
}
Here is my code in an app class to read in a file and sort it
        String[] myArray = new String[100000];
    int index = 0;
    File text = new File("threebears.txt");
    try {
        Scanner scan = new Scanner(text);
        while(scan.hasNextLine() && index < 100000)
        {
            myArray[index] = scan.nextLine();
            index++;
        }
        scan.close();
    } catch (IOException e) {
        System.out.println("Problem with file");
        e.printStackTrace();
    }
    ArrayUtilities.bubbleV1String(myArray);
    try {
        FileWriter outFile = new FileWriter("sorted1.txt");
        PrintWriter out = new PrintWriter(outFile);
        for(String item : myArray)
        {
            out.println(item);
        }
        out.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
When I go to run the code, I get a null pointer exception and the following message
 Exception in thread "main" java.lang.NullPointerException
at java.base/java.lang.String.compareTo(Unknown Source)
at parrayutilities.ArrayUtilities.bubbleV1String(ArrayUtilities.java:129)
at parrayutilities.binarySearchApp.main(binarySearchApp.java:32)
Line 129 refers to this line of code of my bubblesort
                if(numbers[j] .compareTo(numbers[j+1])>0)
And line 32 refers to the piece of code where I call the bubblesort
ArrayUtilities.bubbleV1String(myArray);
Does anyone know why I'm getting a null pointer exception when I've tested the bubblesort on a small string array? I'm thinking possibly something to do with the overloaded method mentioned earlier but I'm not sure
Thanks
 
     
     
    