Я хочу игнорировать все другие символы, кроме A, G, T, C, но когда я поместил N в конец строки, он печатает 00. Выход должен быть 00 0101 1010 1111, , но это 00 0101 1010 1111 00. Я использовал случай по умолчанию в инструкции switch, потому что думал, что это игнорирует все остальные символы, кроме перечисленных. Есть ли что-то, что я делаю неправильно?оператор java switch не игнорирует случаи, которые не указаны
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");
}
}
}
вы пробовали отладки? Используйте отладчик, чтобы он размещал заявления печати, чтобы узнать, что происходит. – Carcigenicate
@PaulAbbott это была моя проблема, спасибо! –