而基因不包含任何ATG , TAG , TAA, TGA这样的三个字符。

解决方案 »

  1.   

    你生物精通的很还学java搞毛啊?
      

  2.   

    帮你看了一下,在几次循环中j和end的值在变化,所以substring()获得的是变动的值,我帮你改了一下:
    package com.java;import java.util.Scanner;public class demo {
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     System.out.print("Enter a genome String: ");
     String src = input.nextLine();
     int end=0,j,i=0;
     for(j=0;j<src.length()-2;j++){
      if(src.substring(j,j+3).equals("ATG")){    
        int flag=j;
        for(end=j+3;end<src.length()-2;end+=3){
          if(src.substring(end,end+3).equals("TAG")||src.substring(end,end+3).equals("TAA")||src.substring(end,end+3).equals("TGA")){
            int flagend=end+3;
            System.out.println("基因组-"+i+":");
            System.out.println(src.substring(flag,flagend));   
            ++i;
            break;
         }   
        }
       } 
      }//TTATGTTTTAAGGATGGGGCGTTAGTT.
      System.out.println("基因组数:"+i);
      if(i==0){
          System.out.println("No gene is found");
      } 
     }

    运行结果:
    Enter a genome String: TTATGTTTTAAGGATGGGGCGTTAGTT
    基因组-0:
    ATGTTTTAA
    基因组-1:
    ATGGGGCGTTAG
    基因组数:2
      

  3.   

    for(end=j+3;end<src.length()-2;end+=3)中的end+=3改为end+=1