在Java中打印两个DNA字符串之间关系的对应字符串
我有以下两个DNA字符串“AACAGTTACC”和“TA-AGGT-CA”,我想打印一个对应的数字字符串,其中两个字符串中的两个元素表示匹配(0),两个元素表示不匹配(1),一个元素表示间隙(2) 例如,上述两个字符串将生成“10220010201” 我尝试通过其中一个字符串进行循环,并检查string.charAt(I).是否包含(“-”),但它不起作用在Java中打印两个DNA字符串之间关系的对应字符串,java,string,Java,String,我有以下两个DNA字符串“AACAGTTACC”和“TA-AGGT-CA”,我想打印一个对应的数字字符串,其中两个字符串中的两个元素表示匹配(0),两个元素表示不匹配(1),一个元素表示间隙(2) 例如,上述两个字符串将生成“10220010201” 我尝试通过其中一个字符串进行循环,并检查string.charAt(I).是否包含(“-”),但它不起作用 String numbers = ""; for(int k = 0; k<adnX.length();k++) { // I
String numbers = "";
for(int k = 0; k<adnX.length();k++) {
// I would like to append numbers to the numbers string
StdOut.printf("%s %s\n", adnX.charAt(k),adnY.charAt(k));
}
字符串编号=”;
对于(int k=0;k假设输入始终具有相同的长度,且两个间隙应导致匹配:
String adnX = "AACAGTTACC";
String adnY = "TA-AGGT-CA";
StringBuilder numbers = new StringBuilder();
for (int i = 0; i < adnX.length(); i++) {
if (adnX.charAt(i) == adnY.charAt(i)) {
numbers.append(0);
} else if (adnX.charAt(i) == '-' || adnY.charAt(i) == '-') {
numbers.append(2);
} else {
numbers.append(1);
}
}
System.out.println(adnX);
System.out.println(adnY);
System.out.println(numbers);
假设输入始终具有相同的长度和两个间隙,则应导致匹配:
String adnX = "AACAGTTACC";
String adnY = "TA-AGGT-CA";
StringBuilder numbers = new StringBuilder();
for (int i = 0; i < adnX.length(); i++) {
if (adnX.charAt(i) == adnY.charAt(i)) {
numbers.append(0);
} else if (adnX.charAt(i) == '-' || adnY.charAt(i) == '-') {
numbers.append(2);
} else {
numbers.append(1);
}
}
System.out.println(adnX);
System.out.println(adnY);
System.out.println(numbers);
这里介绍了两种方法:
- 主要方法和辅助方法
- 辅助程序检查给定的字符是否为有效的DNA字符
主要方法有两个主要部分
首先,它使用所需的DNA字符串初始化s1
和s2
,并创建一个空字符串s3
。s3
将用于存储匹配、未匹配或间隙时的相应数字。它假定s1
和s2
具有相同的长度
在第一部分中,它检查s1
和s2
中i
第th个位置的字符是否是有效的DNA字符,如果不是,它会在s3
中附加一个2
在第二部分(即if
语句的else
),它检查s1
中i
-th位置的字符是否与s2
中i
-th位置的字符相同。如果是,则附加0
,否则附加1
结果在最后打印出来
public class DNACheck {
public static boolean isDNA(char c) {
String dna = "ATGC";
boolean inSequence = false;
for (int i = 0; i < dna.length() && !inSequence;i++) {
if (dna.charAt(i) == c) inSequence = true;
}
return inSequence;
}
public static void main(String[] args) {
String s1 = "AACAGTTACC";
String s2 = "TA-AGGT-CA";
String s3 = "";
for(int k = 0;k< s1.length();k++) {
// I would like to append numbers to the numbers string
if (!isDNA(s1.charAt(k)) || !isDNA(s2.charAt(k))) {
s3 = s3 + '2';
}
else {
if (s1.charAt(k) == s2.charAt(k)) {
s3 = s3 + '0';
}
else {
s3 = s3 + '1';
}
}
}
System.out.println(s3);
}
}
公共类DNACheck{
公共静态布尔isDNA(字符c){
字符串dna=“ATGC”;
布尔内序=假;
对于(int i=0;i
这里介绍了两种方法:
- 主要方法和辅助方法
- 辅助程序检查给定的字符是否为有效的DNA字符
主要方法有两个主要部分
首先,它使用所需的DNA字符串初始化s1
和s2
,并创建一个空字符串s3
。s3
将用于存储匹配、未匹配或间隙时的相应数字。它假定s1
和s2
具有相同的长度
在第一部分中,它检查s1
和s2
中i
第th个位置的字符是否是有效的DNA字符,如果不是,它会在s3
中附加一个2
在第二部分(即if
语句的else
),它检查s1
中i
-th位置的字符是否与s2
中i
-th位置的字符相同。如果是,则附加0
,否则附加1
结果在最后打印出来
public class DNACheck {
public static boolean isDNA(char c) {
String dna = "ATGC";
boolean inSequence = false;
for (int i = 0; i < dna.length() && !inSequence;i++) {
if (dna.charAt(i) == c) inSequence = true;
}
return inSequence;
}
public static void main(String[] args) {
String s1 = "AACAGTTACC";
String s2 = "TA-AGGT-CA";
String s3 = "";
for(int k = 0;k< s1.length();k++) {
// I would like to append numbers to the numbers string
if (!isDNA(s1.charAt(k)) || !isDNA(s2.charAt(k))) {
s3 = s3 + '2';
}
else {
if (s1.charAt(k) == s2.charAt(k)) {
s3 = s3 + '0';
}
else {
s3 = s3 + '1';
}
}
}
System.out.println(s3);
}
}
公共类DNACheck{
公共静态布尔isDNA(字符c){
字符串dna=“ATGC”;
布尔内序=假;
对于(int i=0;i
你也可以粘贴你的代码吗?这是关于基因的……我们不需要了解什么是“匹配”.是TA,TG…你知道我的意思。匹配是当第一个字符串的元素等于第二个字符串的元素时,我得到了你的答案,但向我们展示你示例中所需的输出。AACAGTTACC
是第一个字符串,TA-AGGT-CA
是第二个字符串。在这种情况下会产生什么结果?AACAGTTACC如何
和“TA-AGGT-CA”
产生“10220010201”
?特别是“2”
的第四位结果?在两个输入字符串的第四位都没有“间隙”。你也能粘贴你的代码吗?这是关于基因的……我们不必了解“匹配”是什么.是TA,TG…你知道我的意思。匹配是当第一个字符串的元素等于第二个字符串的元素时,我得到了你的答案,但向我们展示你示例中所需的输出。AACAGTTACC
是第一个字符串,TA-AGGT-CA
是第二个字符串。在这种情况下会产生什么结果?AACAGTTACC如何
和“TA-AGGT-CA”
生产“10