Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中打印两个DNA字符串之间关系的对应字符串_Java_String - Fatal编程技术网

在Java中打印两个DNA字符串之间关系的对应字符串

在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

我有以下两个DNA字符串“AACAGTTACC”和“TA-AGGT-CA”,我想打印一个对应的数字字符串,其中两个字符串中的两个元素表示匹配(0),两个元素表示不匹配(1),一个元素表示间隙(2)

例如,上述两个字符串将生成“10220010201”

我尝试通过其中一个字符串进行循环,并检查string.charAt(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