必须是数组类型但解析为字符串

use*_*796 1 java arrays string

我在代码中收到“必须是数组类型,但它解析为字符串”错误。它还说 i (在下面的代码中)无法解析为我没有得到的变量。

    public class DNAcgcount{

        public double ratio(String dna){
        int count=0;
        for (int i=0;i<dna.length();i++);
            if (dna[i]== "c"){
            count+= 1;
            if (dna[i]=="g"){
            count+=1;
        double answer = count/dna.length();
        return answer;

    }

    }


}
Run Code Online (Sandbox Code Playgroud)

}

大家能帮我看看问题出在哪里吗?我是 Java 编码新手,所以我还不完全适应这种格式。

非常感谢,朱奈德

MBy*_*ByD 5

不能使用下标 ( dna[i]) 访问字符串的字符。使用 charAt 代替:

dna.charAt(i) == 'c'
Run Code Online (Sandbox Code Playgroud)

另外,"c"是一个String'c'是一个char

还有一件事 - 整数除法(例如int_a / int_b)会产生一个 int,因此你会失去准确性,而是 - 将其中一个ints 转换为double

double answer = count/(double)dna.length();
Run Code Online (Sandbox Code Playgroud)