I need to count the number of words and I am assuming the correct way to do it is by calculating the number of times that the previous character in a string is not a letter
Addressing the code directly, your first loop has i=0 as the first value of i, but then you ask for
string.charAt(i-1) = string.charAt(-1),
which is where your array-out-of-bounds is coming from.
The second loop has another problem:
for(int j = 0; i < alphabets.length(); j++) {
You may also want to consider apostrophes as parts of words as well.