这个题,错在哪了?

maksim_y 2012-10-29 11:34:21
基因组在三字符ATG之后开始,在三字符TAG, TAA和TGA之前结束,因此,基因字符串 的长度是3的整数倍,而基因不包含任何ATG , TAG , TAA, TGA这样的三个字符。编写应该程序,提示输入一个基因组,然后显示所有的基因。如果在输入序列中没有找到任何基因,就提示无基因!下面是运行示例:
Enter a genome String:TTATGTTTTAAGGATGGGGCGTTAGTT
TTT
GGGCGT
—————————————————————————————————————第二次
Enter a genome String;TGTGTGTATATAT
no gene is found
我的代码:
import java.util.Scanner;

public class a {
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"))
{
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"))
{
System.out.println(src.substring(j+3,end));
++i;
break;
}
}
}
}//TTATGTTTTAAGGATGGGGCGTTAGTT
if(i==0)
{
System.out.println("No gene is found");
}
}

}
...全文
316 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
x1367442335 2014-10-31
  • 打赏
  • 举报
回复
for(end=j+3;end<src.length()-2;end+=3)中的end+=3改为end+=1
avaj寅 2012-10-31
  • 打赏
  • 举报
回复
帮你看了一下,在几次循环中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
maksim_y 2012-10-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

而基因不包含任何ATG , TAG , TAA, TGA这样的三个字符。
[/Quote]
错误不在这,我同学的代码结果对于这种情况也是正常的,没有报错。
maksim_y 2012-10-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

生物没学好
[/Quote]
你生物精通的很还学java搞毛啊?
maksim_y 2012-10-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

程序运行正常啊!
[/Quote]
神奇的作业提交系统说我的代码不能查找出基因。
我也郁闷一晚上了
nmyangym 2012-10-30
  • 打赏
  • 举报
回复
程序运行正常啊!
liujun3512159 2012-10-30
  • 打赏
  • 举报
回复
太长了,帮你顶一下
aimsgmiss 2012-10-30
  • 打赏
  • 举报
回复
而基因不包含任何ATG , TAG , TAA, TGA这样的三个字符。
joyscsnd 2012-10-30
  • 打赏
  • 举报
回复
生物没学好
wang00225588 2012-10-30
  • 打赏
  • 举报
回复
看不懂
maksim_y 2012-10-29
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
基因组在三字符ATG之后开始,在三字符TAG, TAA和TGA之前结束,因此,基因字符串 的长度是3的整数倍,而基因不包含任何ATG , TAG , TAA, TGA这样的三个字符。编写应该程序,提示输入一个基因组,然后显示所有的基因。如果在输入序列中没有找到任何基因,就提示无基因!下面是运行示例:
Enter a genome String:TTATGTTTTAAGGATGGGGCGTTAGT……
[/Quote]
我在作业提交系统上提交的时候,系统提示:错误的结果。说:找不到基因
迷茫中...求教了

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧