Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 编写调用成员变量的方法_Java - Fatal编程技术网

Java 编写调用成员变量的方法

Java 编写调用成员变量的方法,java,Java,我想在DNA序列中找到基因。基因有起始密码子和终止密码子 起始密码子是ATG。终止密码子是:TGA,TAA,TAG 这是DNA字符串的一个示例: AAATGCCCTAATTAGAATAGTTCAA 为了找到一个基因,我们必须找到起始密码子(ATG)和最近的终止密码子(TAG、TGA或TAA),即距离起始密码子3个字符的倍数,因此在这种情况下,该基因是 ATGCCCTAA 而不是 ATGCCCTAATTAG 或 ATGCCCTAATATAGAATGA 因为TAG距离ATG和TGA有7个字符,即使它

我想在DNA序列中找到基因。基因有起始密码子和终止密码子

起始密码子是ATG。终止密码子是:TGA,TAA,TAG

这是DNA字符串的一个示例: AAATGCCCTAATTAGAATAGTTCAA

为了找到一个基因,我们必须找到起始密码子(ATG)和最近的终止密码子(TAG、TGA或TAA),即距离起始密码子3个字符的倍数,因此在这种情况下,该基因是

ATGCCCTAA

而不是

ATGCCCTAATTAG

ATGCCCTAATATAGAATGA

因为TAG距离ATG和TGA有7个字符,即使它距离ATG和TGA有12个字符,它也不是最近的终止密码子

我将编写一个名为printAll的方法,其中有一个参数stringdna,它调用findStopIndex成员变量,该变量将用于打印在一个dna字符串中找到的所有基因,比如这个:catgtaatagaatgagatgactgatagatagcttgtatgctatgaaatgaatgaatgaccca

以下是我迄今为止编写的代码:

public class ProteinFinder {
    public void printAllStarts(String dna)  {
        int start = 0;
        while (true) {
            int loc = dna.indexOf("atg", start);
            if (loc == -1) {
                break;
            }
            System.out.println("Starts at " + loc);
            start = loc + 3;
        }
    }

    public int findStopIndex(String dna, int index) {
        int stop1 = dna.indexOf("tga", index);
        if (stop1 == -1 || (stop1 - index) % 3!=0) { 
            stop1 = dna.length();
        }
        System.out.println(stop1);

        int stop2 = dna.indexOf("taa", index);
        if (stop2 == -1 || (stop2 - index) %3 !=0) {
            stop2 = dna.length();
        }
        System.out.println(stop2);
        int stop3 = dna.indexOf("tag", index);
        if (stop3 == -1 || (stop3 - index) %3 !=0) {
            stop3 = dna.length();
        }
        System.out.println(stop3);
        return Math.min(stop1, Math.min(stop2, stop3));
    }    
    public void printAll(String dna) {

    }    
}
你能帮我写这个方法吗?谢谢。

这应该可以:

public void printAll(String dna) {
    int start = 0;
    while (true) {
        int atg = dna.indexOf("atg", start);
        if (atg == -1) {
           break; 
        }
        int end = findStopIndex(dna, atg+3);
        if (end != dna.length()) {
            System.out.println(dna.substring(atg, end+3));
            start = end + 3;
        }
        else {
            start = start+3;
        }
    }
}  

小心使用。@ElliottFrisch不完全是与java相关的注释。@Ekaterina1234请使用。它是专门为这项任务而发明的。