ich alle anderen Zeichen ignoriert werden soll neben A, G, T, C, aber wenn ich N am Ende der Zeichenfolge setzen, es druckt 00. die Ausgabe 00 sein sollte 0101 1010 1111, aber es ist 00 0101 1010 1111 00. ich den Standardfall in der switch-Anweisung verwendet, weil ich dachte, das alle anderen Zeichen als die aufgelisteten ignorieren würde. Gibt es etwas, was ich falsch mache?java switch-Anweisung nicht die Fälle zu ignorieren nicht aufgelistet
import java.util.BitSet;
public class Main {
public static void main(String[] args){
String originalString = "aCCGGAATTN";
int bitSetSize = 2 * originalString.length();
BitSet bitSet = new BitSet(bitSetSize);
originalString = originalString.toUpperCase();
for (int i = 0; i < originalString.length(); i++) {
switch(originalString.charAt(i)){
case 'A':
bitSet.clear(i * 2);
bitSet.clear(i * 2 + 1);
break;
case 'C':
bitSet.clear(i * 2);
bitSet.set(i * 2 + 1);
break;
case 'G':
bitSet.set(i * 2);
bitSet.clear(i * 2 + 1);
break;
case 'T':
bitSet.set(i * 2);
bitSet.set(i * 2 + 1);
break;
default:
break;
}
}
// print all the bits in the bitset
for (int i = 0; i < bitSetSize; i++) {
if (bitSet.get(i))
System.out.print("1");
else
System.out.print("0");
}
}
}
Haben Sie das Debuggen versucht? Verwenden Sie einen Debugger, um Druckanweisungen zu platzieren, um zu sehen, was passiert. – Carcigenicate
@PaulAbbott das war mein Problem, danke! –