对于极长的字符串,我得到 2 个输出

I am getting 2 outputs for extremely long strings

我有一个程序涉及解析代表核苷酸的字符串。

当我使用一个小的核苷酸串(基本上是一个小的 DNA 链)时,即 'input' 足够小,我得到一个输出:

但是,当我使用 loooooooooooooooong 字符串时。例如10000 个核苷酸长(我实际使用的),我最终得到 2 个输出:O

http://i.stack.imgur.com/A39um.png http://i.stack.imgur.com/JnNcG.png

源码:我只在主class.

中添加了我实际使用的函数
public static void main (String args[])
{
    String input = "Blah Blah";
    System.out.println(translate(input));
}

public static String codon (String codon_input)
/* Returns the amino acid alphabet corresponding to entered codon 
   (3 nucleotide string) in String format. */        
{
    if (codon_input.substring(0,2).equals("GC"))
    {
        return "A";
    }
    else if (codon_input.equals("UGU") || codon_input.equals("UGC"))
    {
        return "C";
    }
    else if (codon_input.equals("GAU") || codon_input.equals("GAC"))
    {
        return "D";
    }
    else if (codon_input.equals("GAA") || codon_input.equals("GAG"))
    {
        return "E";
    }
    else if (codon_input.equals("UUU") || codon_input.equals("UUC"))
    {
        return "F";
    }
    else if (codon_input.substring(0,2).equals("GG"))
    {
        return "G";
    }
    else if (codon_input.equals("CAU") || codon_input.equals("CAC"))
    {
        return "H";
    }
    else if (codon_input.substring(0,2).equals("AU") && !codon_input.equals("AUG"))
    {
        return "I";
    }
    else if (codon_input.equals("AAA") || codon_input.equals("AAG"))
    {
        return "K";
    }
    else if (codon_input.substring(0,2).equals("CU") || codon_input.equals("UUA") || codon_input.equals("UUG"))
    {
        return "L";
    }
    else if (codon_input.equals("AUG"))
    {
        return "M";
    }
    else if (codon_input.equals("AAU") || codon_input.equals("AAC"))
    {
        return "N";
    }
    else if (codon_input.substring(0,2).equals("CC"))
    {
        return "P";
    }
    else if (codon_input.equals("CAA") || codon_input.equals("CAG"))
    {
        return "Q";
    }
    else if (codon_input.substring(0,2).equals("CG") || codon_input.equals("AGA") || codon_input.equals("AGG"))
    {
        return "R";
    }
    else if (codon_input.substring(0,2).equals("UC") || codon_input.equals("AGU") || codon_input.equals("AGC"))
    {
        return "S";
    }
    else if (codon_input.substring(0,2).equals("AC"))
    {
        return "T";
    }
    else if (codon_input.substring(0,2).equals("GU"))
    {
        return "V";
    }
    else if (codon_input.equals("UGG"))
    {
        return "W";
    }
    else if (codon_input.equals("UAU") || codon_input.equals("UAC"))
    {
        return "Y";
    }
    else if (codon_input.equals("UAA") || codon_input.equals("UAG") || codon_input.equals("UGA"))
    {
        return "Stop";
    }
    return "-";
}

public static String translate (String tran_input)
/* Converts an RNA strand into an amino acid strand using codon() */
{
    String tran_output = "";
    int tran_length = tran_input.length();
    int tran_cursor = 0;
    while (tran_cursor < tran_length - 2)
    {
        if (codon(tran_input.substring(tran_cursor, tran_cursor + 3)).equals("Stop"))
        {
            return tran_output;
        }
        else
        {
            tran_output = tran_output + codon(tran_input.substring(tran_cursor, tran_cursor + 3));
        }
        tran_cursor = tran_cursor + 3;
    }
    return tran_output;
}

控制台一行只能有这么多字符。根据另一个 post mac 可以有 2047(我不知道它在 netbeans 上是什么)。因此,我认为您的控制台只是移到下一行,因为它太长了。我建议只输出到一个文件。

这不就是要输出到外部日志文件中记录的那种数据吗?就像上面的用户所说,格式化你的数据并将其保存到一个好的文件以便于阅读。