-2

一个名为 dna 的 java 类有 3 个变量:

  • 存储序列的字符串
  • 用于存储字符串中无效字符数的 int
  • 用于存储字符串中有效字符数的 int。

一个以 dna 序列 (acgt) 作为参数的构造函数字符串。如何检查参数并计算有多少字符无效以及有多少字符有效并将计数存储在适当的变量中。我不能在这里使用正则表达式,所以我迷路了。如何在此处使用 String 的charAt方法和if语句。

请帮忙....

4

2 回答 2

2

使用 foreach 循环遍历每个值。如果给定的字符与 a OR c OR g OR T 都不匹配(我在那里给你线索),那么你可以增加相应的变量。如果没有 Regex,这是最有效的方法,因为您必须检查序列中的每个字母,才能确定您的值准确地反映了 DNA 字符串。

for(char c : dna)
{
    if(c == ..) // Compare against preset values.
    {
        // Update valid count.
    }
    else
    {
        // Update invalid count.
    }
}

这和我一样慷慨,因为你需要自己开发这些基本概念。

于 2013-03-02T13:46:51.080 回答
0

这是执行此操作的众多方法之一:

在你的课堂上保持一个常数

private static final String bases = "atcg";

以及这些其他字段来存储值

String dna;
Integer numValid;
Integer numInvalid;

并在构造函数中像这样使用它们

public DNA(String dna) {
    this.dna = dna;
    for (char c : dna.toCharArray()) {
        if (bases.indexOf(c) < 0) {
            numInvalid++;
        } else {
            numValid++;
        }
    }
}

使用这种实现获得的好处是,即使有效字符列表发生变化,您也无需修改if条件,如果列表变化很大,这可能看起来很糟糕。

于 2013-03-02T13:57:46.350 回答