【发布时间】:2020-10-26 16:36:00
【问题描述】:
我正在尝试将 char 的补码结果放入 char 数组补码 1。我以为我可以使用运算符,但这仅适用于字符串,但我很难弄清楚如何将每个字母放入数组中,以便显示结果。任何帮助都会非常感谢。
public static char[] complement(char[] dna) {
char[] complement1 = new char[17];
char comp = '\0';
for (char i = 0; i < dna.length; i++)
if (dna[i] == 'A') {
comp = 'T';
} else if (dna[i] == 'T') {
comp = 'A';
} else if (dna[i] == 'G') {
comp = 'C';
} else if (dna[i] == 'C') {
comp = 'G';
} else {
return null;
}
for (char c : dna)
return complement1;
return complement1;
}
public static void main(String[] args) {
String testData1 = "GCCTGTCGTAGCTTATC",
testData2 = "GGCTGACGTAGCGTAAC";
System.out.printf("%s <-- complement --> %s%n", testData1,
complement(testData1));
// int[] baseCounts = nucleotideCounts(testData1);
// System.out.printf("Nucleotide counts for %s: A: %d C: %d G: %d T: %d%n",
// testData1, baseCounts[0],
// baseCounts[1], baseCounts[2], baseCounts[3]);
System.out.printf("%s <-- reverse complement --> %s%n",
testData1, reverseComplement(testData1));
System.out.printf("%s GC-content: %f%n", testData1,
gcContent(testData1));
System.out.printf("Hamming distance between %s and %s: %d%n",
testData1, testData2,
hammingDistance(testData1, testData2));
// System.out.printf("Mutation points between %s and %s:%n%s%n", testData1,
// testData2,
// Arrays.toString(mutationPoints(testData1, testData2))); */
}
}
【问题讨论】:
-
你的最后一个 forloop 没有意义。要将字母分配给数组,请执行
dna[i] = 'A',其中i是索引,不能超过数组的length-1。 -
您所做的只是反复更改
comp变量。您永远不会将其设置为complement1数组中的值。 -
您不能真正“添加”到数组中。将值设置为
complement1[0] = 'c'中的数组会更正确。但在你的情况下,如果你只是使用现有的 String 运算符构建你的字符串,然后在最后调用你的 String 上的toCharArray()方法将其转换为 char 数组,它可能会更简单 -
我把它改成了一个字符串,这让它更容易了,谢谢哦上帝蜘蛛