ゲノム内の遺伝子を見つけるには、開始コドン ATG をスキャンし、そのインデックスを記憶してから、次の終止コドン TAG からスキャンします。介在する配列の長さが 3 の倍数である場合、遺伝子が見つかったことになります。遺伝子を返す
これが私がこれまでに得たものです:
public static void main(String[] args) {
System.out.println("This is a gene finder program.");
Scanner scan = new Scanner(System.in);
System.out.println("Enter the string that you want to locate genes:");
String geneString = scan.nextLine();
System.out.println(scanGene(geneString));
}
public static String scanGene(String geneString) {
int i = 0;
int x = 3;
int y = 3;
double startCondon, endCondon;
while (i < geneString.length() - 3) {
i = i+1;
x = x+1;
if(geneString.substring(i,x) == "ATG") {
startCondon = geneString.indexOf(x+1);
while (y<geneString.length()) {
y = y+1;
if (geneString.substring(y,y+4) == "TAG") {
endCondon = geneString.indexOf(y-1);
if ((endCondon - startCondon) % 3 == 0)
System.out.println("We have found a gene!");
}
}
}
}
return geneString.substring(x+1,y);
}
助けてください?動作していないようです...何らかの理由で、「範囲外」というエラーが表示されます。インデックスは負の数か何かです。私はコードを調べましたが、あまりにも間違っているものを見つけることができないようです....ありがとう