Мой код вводит определенную пользователем строку и классифицирует ее как ДНК, РНК или ODD. Вывод должен печатать ключи и значения HashMap нуклеотид_hmap, но код в настоящее время этого не делает. Что я должен изменить в своем коде, чтобы он работал?Код Java не печатает Ключи и значения HashMap
Вот то, что код должен вывести: (если последовательность пользователь вводит ATGC)
- ATGC
- 1: 0,25
- T 1: 0,25
- С 1: 0,25
- G 1: 0,25
- Последовательность Длина: 4
- Обратный порядок: C GTA
- Reverse дополнение: GCAT
И это одна из моих подклассов:
package sequenceclasses;
public class DNASequence extends MainSequence {
public DNASequence(String dna_sequence){
the_sequence = dna_sequence;
complement_hmap.put('A', 'T');
complement_hmap.put('T', 'A');
complement_hmap.put('C', 'G');
complement_hmap.put('G', 'C');
}
public void nuc_content(String dna_sequence){
the_sequence = dna_sequence;
double[] counts_ratios = new double[8];
for (int i = 0; i < dna_sequence.length(); i++){
if (dna_sequence.charAt(i) == 'A'){
counts_ratios[0] += 1;}
if (dna_sequence.charAt(i) == 'T'){
counts_ratios[1] += 1;}
if (dna_sequence.charAt(i) == 'C'){
counts_ratios[2] += 1;}
if (dna_sequence.charAt(i) == 'G'){
counts_ratios[3] += 1;}
}
if (dna_sequence.length() > 0){
counts_ratios[4] = counts_ratios[0]/dna_sequence.length();
counts_ratios[5] = counts_ratios[1]/dna_sequence.length();
counts_ratios[6] = counts_ratios[2]/dna_sequence.length();
counts_ratios[7] = counts_ratios[3]/dna_sequence.length();
}
String A_content = Double.toString(counts_ratios[0]) + " , " + Double.toString(counts_ratios[4]);
String T_content = Double.toString(counts_ratios[1]) + " , " + Double.toString(counts_ratios[5]);
String C_content = Double.toString(counts_ratios[2]) + " , " + Double.toString(counts_ratios[6]);
String G_content = Double.toString(counts_ratios[3]) + " , " + Double.toString(counts_ratios[7]);
nucleotide_hmap.put('A', A_content);
nucleotide_hmap.put('T', T_content);
nucleotide_hmap.put('C', C_content);
nucleotide_hmap.put('G', G_content);
}
}
Попробуйте указать _minimal_ подмножество кода, которое продемонстрирует ваш вопрос. –
Ну, единственное место, где вы положили что-то на карте, - это метод nuc_content(). Но этот метод никогда не называется нигде. –
Добро пожаловать в переполнение стека! Похоже, вам нужно научиться использовать отладчик. Пожалуйста, помогите нам с некоторыми [дополнительными методами отладки] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Если у вас все еще есть проблемы после этого, пожалуйста, не забудьте вернуться с более подробной информацией. –