【发布时间】:2014-02-11 17:39:58
【问题描述】:
所以我在这个项目的第二部分遇到了麻烦。我有下面的代码,它为每个条目提供计数,但我不知道如何获得高点和低点......提前致谢!
A1熟练
这个程序应该像 A1Novice 一样处理输入,但除了产生计数之外,它还应该跟踪每个核碱基中具有最小和最大数量的 DNA 链,并将这些链打印到输出。因此,给定以下输入:
A
CC
AATA
GGG
TTT
end
程序应产生以下输出:
计数:4
C 数:2
克数:3
T 数:4
低A计数:A
高A计数:AATA
低 C 计数:CC
高 C 计数:CC
低 G 数:GGG
高G数:GGG
低 T 计数:AATA
高 T 计数:TTT
package a1;
import java.util.Scanner;
public class A1Novice {
public static void main(String[] args){
Scanner s = new Scanner(System.in);
System.out.println("Enter nucleobases: (enter end when done)");
process(s);
}
public static void process(Scanner s){
int a = 0, c = 0, g = 0, t = 0;
while(s.hasNext()){
String id = s.next();
if(id.equalsIgnoreCase("end")){
break;
}
for(int i = 0; i < id.length(); i++){
char singleChar = id.charAt(i);
if (singleChar=='A' || singleChar=='a'){
a++;
}
else if(singleChar=='C' || singleChar=='c'){
c++;
}
else if(singleChar=='G' || singleChar=='g'){
g++;
}
else if(singleChar=='T' || singleChar=='t'){
t++;
}
}
}
System.out.println("A count: " + a);
System.out.println("C count: " + c);
System.out.println("G count: " + g);
System.out.println("T count: " + t);
}
}
【问题讨论】:
-
@DavidWallace 是的,我现在想通了……
-
既然是学校项目,我认为你应该更加努力,自己完成目标。但是这里有个小技巧:把当前字符串的
A的个数和当前字符串本身保存在两个变量中;如果下一个字符串的A比您放入变量中的更多,则更新。其他字母也一样。
标签: java arrays java.util.scanner next dna-sequence