Всем привет! Я уже понял что нужно использовать charAt(), но хотелось бы понять что сейчас считает мой код без charAt(). Это нужно для себя, ведь в цикле я указал что если элемент "i" строки "string" является цифрой то нужно увеличить счетчик на 1, но при этом компилятор выдает странные результаты.
public class Solution {
    public static void main(String[] args) {
        String string = "Думаю, это будет новой фичей." +
                "Только не говорите никому, что она возникла случайно.";

        System.out.println("Количество цифр в строке : " + countDigits(string));
        System.out.println("Количество букв в строке : " + countLetters(string));
        System.out.println("Количество пробелов в строке : " + countSpaces(string));
    }

    public static int countDigits(String string) { // проверяем на цифру
        //напишите тут ваш код
        int count = 0;
        for (int i = 0; i < string.length(); i++) {
            if (Character.isDigit(i)) {
                count++;
            }


        }
        System.out.println(count);
        return count;
    }


    public static int countLetters(String string) { // на буквы
        //напишите тут ваш код
        int count = 0;
        for (int i = 0; i < string.length(); i++) {
            if (Character.isLetter(i)){
                count++;
            }

        }
        return count;
    }

    public static int countSpaces(String string) { // на разделители
        //напишите тут ваш код
        int count = 0;
        for (int i = 0; i < string.length(); i++) {
            if (Character.isWhitespace(i)) {
                count++;
            }
        }
        return count;
    }
}