尝试使用字符比较来增加计数器

时间:2019-05-08 18:19:26

标签: java string charat

我正在编写一种方法,该方法应该遍历字符串并在每次找到字母c时增加一个计数器。该方法使用计数来计算字符串c的比例。我添加了打印语句,以调查为什么错误地返回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 个答案:

答案 0 :(得分:3)

您的代码不计算字母c,因为您正在检查字母Csmall c不等于upper C(不同的ASCII code)。

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

这将解决您的问题。