My goal is to write a program to determine the frequency of characters in a char[]. The test case for my program is written below:
Expected:
Enter a string: Welcome to Java
Enter a character: ee
appears 2 times
Actual:
Enter a string: Welcome to Java
Enter a character: ee
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 0
My attempt
package Recursion;
import java.util.Arrays;
import java.util.Scanner;
public class Test15 {
    public static void main(String args[]){
        Scanner input = new Scanner(System.in);
        System.out.print("Enter a string: ");
        char[] characterArray    = input.nextLine().toCharArray();
        System.out.print("Enter a character: ");
        char character = input.nextLine().toCharArray()[0];
        System.out.printf("appears %d times",count(characterArray, character));
    }
    //input: list of characters
    //output: display frequency of characters in the list
    public static int count(char[] chars, char ch){
        int high = 0;
        return count(chars, ch, high);
    }
    public static int count(char[] chars, char ch, int high){
        if(chars[chars.length-1] == ch)
            high++;
        
        if(chars.length == 0)
            return 0;
        return count(Arrays.copyOfRange(chars, 0, chars.length - 1), ch, high);
    }
}
 
    