将字符串作为输入,若它在Java中完全由字符a、T、C和G组成,则返回valid
所以,我有一个类,它接受一个字符串作为参数,如果它只由字符a、T、C和G组成,则返回valid。这就是我到目前为止得到的将字符串作为输入,若它在Java中完全由字符a、T、C和G组成,则返回valid,java,string,character,Java,String,Character,所以,我有一个类,它接受一个字符串作为参数,如果它只由字符a、T、C和G组成,则返回valid。这就是我到目前为止得到的 public class test { public static void main(String[] args) { String s = args[0]; for(int i = 0; i < s.length(); i++) { char chr = s.charAt(i);
public class test {
public static void main(String[] args) {
String s = args[0];
for(int i = 0; i < s.length(); i++) {
char chr = s.charAt(i);
if(chr != 'A' || chr != 'C' || chr != 'T' || chr != 'G') {
System.out.println("invalid");
break;
}
System.out.println("valid");
}
}
}
公共类测试{
公共静态void main(字符串[]args){
字符串s=args[0];
对于(int i=0;i
当CTGATCG应返回valid,DGHAIS应返回invalid时,它将返回invalid FORMENTING。
我不知道我做错了什么。有什么想法吗?您必须从以下内容更改您的if语句:
if(chr != 'A' || chr != 'C' || chr != 'T' || chr != 'G') {
到
每个字符不等于A
或C
或其他字符。在当前版本中,基本上排除了所有内容
此外,您将为输入中的每个字符打印“valid”
正确的代码应如下所示:
String s = args[0];
for(int i = 0; i < s.length(); i++) {
char chr = s.charAt(i);
if(chr != 'A' && chr != 'C' && chr != 'T' && chr != 'G') {
System.out.println("invalid");
return;
}
}
System.out.println("valid");
String s=args[0];
对于(int i=0;i
如果您想在程序中执行更多操作,在这种情况下应使用布尔变量。您必须将If语句更改为:
if(chr != 'A' || chr != 'C' || chr != 'T' || chr != 'G') {
到
每个字符不等于A
或C
或其他字符。在当前版本中,基本上排除了所有内容
此外,您将为输入中的每个字符打印“valid”
正确的代码应如下所示:
String s = args[0];
for(int i = 0; i < s.length(); i++) {
char chr = s.charAt(i);
if(chr != 'A' && chr != 'C' && chr != 'T' && chr != 'G') {
System.out.println("invalid");
return;
}
}
System.out.println("valid");
String s=args[0];
对于(int i=0;i
如果您想在程序中执行更多操作,在本例中应使用布尔变量。您不应使用| |(或)在本例中,应使用&(和)
您的条件现在表示“如果字符不是A、C、T、G,那么它是无效的”。您不应该使用| |(或者)在这种情况下,您应该使用&&(和)
您的条件现在表示“如果字符不同时是A、C、T、G,则该字符无效”。这样如何:
public class test {
public static void main(String[] args) {
String s = args[0];
if(!s.matches("[ACGT]+")
System.out.println("invalid");
else
System.out.println("valid");
}
}
这个怎么样:
public class test {
public static void main(String[] args) {
String s = args[0];
if(!s.matches("[ACGT]+")
System.out.println("invalid");
else
System.out.println("valid");
}
}
你不需要所有的代码。1行是您所需要的全部:
public static void main(String[] args) {
System.out.println(args[0].matches("[ACGT]*") ? "valid" : "invalid");
}
这段代码的性能也很好。您不需要所有这些代码。1行是您所需要的全部:
public static void main(String[] args) {
System.out.println(args[0].matches("[ACGT]*") ? "valid" : "invalid");
}
这段代码也会执行得很好。每个字符总是不等于A、C、T和G中的至少一个。我想你是想写
chr!='A'&&chr!='C'…
此外,在检查所有字符之前,您不能说字符串有效。请阅读以下内容:每个字符始终不等于A、C、t和G中的至少一个。我想您的意思是编写chr!='A'&&chr!='C'…
此外,在检查所有字符之前,不能说字符串有效。请阅读以下内容: