为什么我的代码不听?
Why doesn't my code listen?
import java.util.Scanner;
public class ReverseCompliment
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
String seqFirst = "0";
String seqSecond = "0";
String seqReverseCompliment = "";
boolean isOrIsNot = true;
System.out.print("Enter the first sequence: ");
seqFirst = in.next();
System.out.print("Enter the second sequence: ");
seqSecond = in.next();
for ( int i = 0; i < seqFirst.length(); i++)
{
if ( seqFirst.charAt(i) == 'A')
{
seqReverseCompliment = "T" + seqReverseCompliment;
}
else if ( seqFirst.charAt(i) == 'T')
{
seqReverseCompliment = "A" + seqReverseCompliment;
}
else if ( seqFirst.charAt(i) == 'C')
{
seqReverseCompliment = "G" + seqReverseCompliment;
}
else if ( seqFirst.charAt(i) == 'G')
{
seqReverseCompliment = "C" + seqReverseCompliment;
}
else
{
System.out.println("incorrect input");
}
}
for ( int i = 0; i < seqFirst.length(); i++)
{
if ( seqSecond.charAt(i) != seqReverseCompliment.charAt(i) )
{
isOrIsNot = false;
}
else if ( seqSecond.charAt(i) == seqReverseCompliment.charAt(i) )
{
isOrIsNot = true;
}
}
if ( isOrIsNot = true )
{
System.out.println("These are reverse compliments");
}
else if (
{
System.out.println("These are not reverse compliments");
}
}
}
本质上我需要用户输入两个DNA序列,然后程序需要比较它们并确定这两个序列是否相互反向互补。我不是在找人为我完成这项任务,我只是不知道为什么它不能正常工作。
我测试的时候总是说这两个是反向恭维
您可以使用 String.equals
:
将 seqSecond
与 seqReverseCompliment
进行比较
import java.util.Scanner;
public class ReverseCompliment
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
String seqFirst = "0";
String seqSecond = "0";
String seqReverseCompliment = "";
System.out.print("Enter the first sequence: ");
seqFirst = in.next();
System.out.print("Enter the second sequence: ");
seqSecond = in.next();
for ( int i = 0; i < seqFirst.length(); i++)
{
if ( seqFirst.charAt(i) == 'A')
{
seqReverseCompliment = "T" + seqReverseCompliment;
}
else if ( seqFirst.charAt(i) == 'T')
{
seqReverseCompliment = "A" + seqReverseCompliment;
}
else if ( seqFirst.charAt(i) == 'C')
{
seqReverseCompliment = "G" + seqReverseCompliment;
}
else if ( seqFirst.charAt(i) == 'G')
{
seqReverseCompliment = "C" + seqReverseCompliment;
}
else
{
System.out.println("incorrect input");
}
}
if ( seqSecond.equals(seqReverseCompliment) )
{
System.out.println("These are reverse compliments");
}
else if (
{
System.out.println("These are not reverse compliments");
}
}
}
import java.util.Scanner;
public class ReverseCompliment
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
String seqFirst = "0";
String seqSecond = "0";
String seqReverseCompliment = "";
boolean isOrIsNot = true;
System.out.print("Enter the first sequence: ");
seqFirst = in.next();
System.out.print("Enter the second sequence: ");
seqSecond = in.next();
for ( int i = 0; i < seqFirst.length(); i++)
{
if ( seqFirst.charAt(i) == 'A')
{
seqReverseCompliment = "T" + seqReverseCompliment;
}
else if ( seqFirst.charAt(i) == 'T')
{
seqReverseCompliment = "A" + seqReverseCompliment;
}
else if ( seqFirst.charAt(i) == 'C')
{
seqReverseCompliment = "G" + seqReverseCompliment;
}
else if ( seqFirst.charAt(i) == 'G')
{
seqReverseCompliment = "C" + seqReverseCompliment;
}
else
{
System.out.println("incorrect input");
}
}
for ( int i = 0; i < seqFirst.length(); i++)
{
if ( seqSecond.charAt(i) != seqReverseCompliment.charAt(i) )
{
isOrIsNot = false;
}
else if ( seqSecond.charAt(i) == seqReverseCompliment.charAt(i) )
{
isOrIsNot = true;
}
}
if ( isOrIsNot = true )
{
System.out.println("These are reverse compliments");
}
else if (
{
System.out.println("These are not reverse compliments");
}
}
}
本质上我需要用户输入两个DNA序列,然后程序需要比较它们并确定这两个序列是否相互反向互补。我不是在找人为我完成这项任务,我只是不知道为什么它不能正常工作。 我测试的时候总是说这两个是反向恭维
您可以使用 String.equals
:
seqSecond
与 seqReverseCompliment
进行比较
import java.util.Scanner;
public class ReverseCompliment
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
String seqFirst = "0";
String seqSecond = "0";
String seqReverseCompliment = "";
System.out.print("Enter the first sequence: ");
seqFirst = in.next();
System.out.print("Enter the second sequence: ");
seqSecond = in.next();
for ( int i = 0; i < seqFirst.length(); i++)
{
if ( seqFirst.charAt(i) == 'A')
{
seqReverseCompliment = "T" + seqReverseCompliment;
}
else if ( seqFirst.charAt(i) == 'T')
{
seqReverseCompliment = "A" + seqReverseCompliment;
}
else if ( seqFirst.charAt(i) == 'C')
{
seqReverseCompliment = "G" + seqReverseCompliment;
}
else if ( seqFirst.charAt(i) == 'G')
{
seqReverseCompliment = "C" + seqReverseCompliment;
}
else
{
System.out.println("incorrect input");
}
}
if ( seqSecond.equals(seqReverseCompliment) )
{
System.out.println("These are reverse compliments");
}
else if (
{
System.out.println("These are not reverse compliments");
}
}
}