循环中的Java布尔条件
我试图计算并返回两个长度相等的DNA序列不同的地方。例如,给定字符串“ATGT”和“GTGA”,结果应该是数组{true,false,false,true}。我得到了一个错误False/true不能解析为一个变量这是我到目前为止得到的循环中的Java布尔条件,java,arrays,loops,boolean,Java,Arrays,Loops,Boolean,我试图计算并返回两个长度相等的DNA序列不同的地方。例如,给定字符串“ATGT”和“GTGA”,结果应该是数组{true,false,false,true}。我得到了一个错误False/true不能解析为一个变量这是我到目前为止得到的 /** * Calculates and returns where two DNA sequences of equal lengths differ. For * example, given strings "ATGT" and "GTGA",
/**
* Calculates and returns where two DNA sequences of equal lengths differ. For
* example, given strings "ATGT" and "GTGA", the result should be array
* { true, false, false, true }.
*
* @param dna1 a String representing a DNA sequence of arbitrary length (equal
* to dna2's length), containing only the characters A, C, G and T
* @param dna2 a String representing a DNA sequence of arbitrary length (equal
* to dna1's length), containing only the characters A, C, G and T
* @return an array of boolean values, of length equivalent to both
* parameters' lengths, containing true in each subscript where the
* parameter strings differ, and false where they do not differ
*/
public static boolean[] mutationPoints(String dna1, String dna2) {
boolean [] mutPoint = new boolean [dna1.length()];
for( int i = 0; i < i; i++) {
if( dna1 != dna2) {
mutPoint[i] = False;
}
else if (dna1 == dna2) {
mutPoint[i] = True;
}
}
/**
*计算并返回两个长度相等的DNA序列不同的位置。对于
*例如,给定字符串“ATGT”和“GTGA”,结果应该是数组
*{真,假,假,真}。
*
*@param dna1表示任意长度的DNA序列的字符串(等于
*到dna2的长度),仅包含字符A、C、G和T
*@param dna2表示任意长度的DNA序列的字符串(等于
*到dna1的长度),仅包含字符A、C、G和T
*@返回一个布尔值数组,其长度等于
*参数的长度,在
*参数字符串不同,如果不不同,则为false
*/
公共静态布尔[]变异点(字符串dna1、字符串dna2){
boolean[]mutPoint=新布尔值[dna1.length()];
for(int i=0;i
以下是一个简短的答案:
public static boolean[] mutationPoints(String dna1, String dna2) {
boolean [] mutPoint = new boolean [dna1.length()];
for (int i = 0 ; i < mutPoint.length ; i++){
mutPoint[i] = dna1.charAt(i) != dna2.charAt(i);
}
}
publicstaticboolean[]mutationPoints(字符串dna1、字符串dna2){
boolean[]mutPoint=新布尔值[dna1.length()];
对于(int i=0;i
您需要迭代mutPoint.length
次(而不是循环中的i
次)。您需要比较i
索引处的字符(而不是字符串)。您需要返回数组。例如
boolean[] mutPoint = new boolean[dna1.length()];
for (int i = 0; i < mutPoint.length; i++) {
mutPoint[i] = dna1.charAt(i) != dna2.charAt(i);
}
return mutPoint;
boolean[]mutPoint=new boolean[dna1.length()];
对于(int i=0;i
或类似
char[] dna1arr = dna1.toCharArray();
char[] dna2arr = dna2.toCharArray();
boolean[] mutPoint = new boolean[dna1arr.length];
for (int i = 0; i < mutPoint.length; i++) {
mutPoint[i] = dna1arr[i] != dna2arr[i];
}
return mutPoint;
char[]dna1arr=dna1.toCharArray();
char[]dna2arr=dna2.toCharArray();
boolean[]mutPoint=新布尔值[dna1arr.length];
对于(int i=0;i
尝试以下算法:
String dna1 = "ATGT";
String dna2 = "GTGA";
if(dna1.length() != dna2.length()) return;
boolean [] mutPoint = new boolean [dna1.length()];
for( int i = 0; i < dna1.length(); i++) {
if( dna1.charAt(i) == dna2.charAt(i)) {
mutPoint[i] = false;
}
else {
mutPoint[i] = true;
}
}
System.out.println(Arrays.toString(mutPoint));
String dna1=“ATGT”;
字符串dna2=“GTGA”;
如果(dna1.length()!=dna2.length())返回;
boolean[]mutPoint=新布尔值[dna1.length()];
对于(int i=0;i
它打印:[true,false,false,true]
注意事项:
循环长度应为dna的长度
您需要检查两个DNA的长度是否相等
您需要比较字符串中字符的相等性
我假设只有当dna序列长度相等时,你才需要比较它们
public static boolean[] mutationPoints(String dna1, String dna2) {
if(dna1.length() == dna2.length()){
boolean [] mutPoint = new boolean [dna1.length()];
for( int i = 0; i < dna1.length(); i++) {
if( dna1.charAt(i)== dna2.charAt(i)) {
mutPoint[i] = true;
}
else {
mutPoint[i] = false;
}
}
return mutPoint; }
else{
return null;
}
}
public static void main(String args[]) {
boolean abc[]=mutationPoints("AWQA","AQQA");
System.out.println(Arrays.toString(abc));
}
publicstaticboolean[]mutationPoints(字符串dna1、字符串dna2){
如果(dna1.length()==dna2.length()){
boolean[]mutPoint=新布尔值[dna1.length()];
对于(int i=0;i
输出:
[true,false,true,true]使用小写true
和false
。使用for(int i=0;i
这始终是0小写的true
和false
,但下一个谜团将是循环条件'imutPoint。length
中的逻辑有问题条件语句,我不应该使用I
,因为我试图使dna1等于另一个dna2。