【发布时间】:2014-02-08 20:07:50
【问题描述】:
所以我很确定我错误地使用了 next 和 hasNext... 我正在尝试输入一串 ACGT 字符,然后计算各个结果字母。提前致谢。
import java.util.Scanner;
public class A1Novice {
public static void main(String[] args){
String input = "";
Scanner s = new Scanner(System.in);
Scanner j = new Scanner(input);
System.out.println("Enter nucleobases (enter end when done)");
while(true){
input = s.next() + input;
if(s.next().contains("end")){
break;
}
}
process(j, input);
}
public static void process(Scanner j, String input){
int a = 0, c = 0, g = 0, t = 0;
while(j.hasNext()){
if (j.next()=="A"){
a++;
}
else if(j.next()=="C"){
c++;
}
else if(j.next()=="G"){
g++;
}
else if(j.next()=="T"){
t++;
}
else{
System.out.println("A count: " + a);
System.out.println("C count: " + c);
System.out.println("G count: " + g);
System.out.println("T count: " + t);
break;
}
}
}
}
【问题讨论】:
-
是的,你想使用 .equals 方法
-
将
j.next()的结果缓存在某个变量中,然后检查其值。 -
@DennisMeng 不是重复的,但有用的链接。
-
另外,是的,j.next() 将删除一个元素,所以在这里您将在每个循环中删除 4 个元素,以查看它们是否相等
标签: java java.util.scanner next dna-sequence