Попытка увеличить счетчик, используя сравнение символов - PullRequest
1 голос
/ 08 мая 2019

Я пишу метод, который должен перебирать строку и увеличивать счетчик каждый раз, когда обнаруживается буква c.Метод использует счетчик для вычисления доли строки, которая была c.Я добавил операторы print, чтобы выяснить, почему он ошибочно возвращал 0.0 для строки, в которой было несколько c.

Я попытался объявить счетчик как int, а затем привести его к double, но это не помогло.

public double cRatio() {
        String dna = "ATCCCCCCGTACCTAGCAA";
        double cCount = 0.0;
        for (int i = 0; i < dna.length(); i++) {
            char ch = dna.charAt(i);
            if (ch == 'c') {cCount++;}
        }
        System.out.println("C Count is : " + cCount);
        System.out.println("dna.length() is : " + dna.length());

        double cgRatio = (cCount / dna.length());
        System.out.println("C Ratio is : " + cgRatio);
        return cgRatio;
    }

Я ожидаю, что счетчик будет иметь значение 9.0в то время, когда он печатается, но вместо этого он равен 0.0.

1 Ответ

3 голосов
/ 08 мая 2019

Ваш код не считается буквой c, потому что вы проверяете букву C.small c не равно upper C (другой ASCII код ).

if (ch == 'C') {cCount++;}

Это решит вашу проблему.

...