gpt4 book ai didi

java - 在 if/else 语句的参数中使用 next()

转载 作者:行者123 更新时间:2023-12-01 17:17:08 25 4
gpt4 key购买 nike

所以我很确定我错误地使用了 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;
}
}

}
}

最佳答案

如前所述,您必须将下一个元素放入局部变量中。

但这还不够:请不要使用 == 来比较字符串。使用 String 的方法 equals 代替,甚至使用 equalsIgnoreCase

你应该使用类似的东西:

String val = j.next();
if(val.equals("A")){ // you could use val.equalsIgnoreCase("A") to be case insensitive
...
} else if (val.equals("B")){
...

正如 aljipa 的回答所建议的,您可以使用开关。如果您希望测试不区分大小写,也可以编写如下内容:

String val = j.next();
switch (val.toUpperCase()) {
case "A":
a++;
break;
case "B":
...

关于java - 在 if/else 语句的参数中使用 next(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21220718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com