有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java代码不打印HashMap的键和值

我的代码输入一个用户定义的字符串,并将其分类为DNA、RNA或ODD。输出应该打印HashMap的键和值,但代码目前没有。我应该在我的代码中更改什么才能使其工作

下面是代码应该输出的内容: (如果用户输入序列ATGC)

  • ATGC
  • A 1:0.25
  • T1:0.25
  • C1:0.25
  • G 1:0.25
  • 序列长度:4
  • 反向顺序:CGTA
  • 反向补码: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);
    }
}

共 (1) 个答案

  1. # 1 楼答案

    在DNASequence类中永远不会调用nuc_content方法。要解决此问题,请将行nuc_content(dna_sequence);添加到DNASequence类。构造函数现在应该如下所示:

    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');
            nuc_content(dna_sequence);
        }