对于极长的字符串,我得到 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 上是什么)。因此,我认为您的控制台只是移到下一行,因为它太长了。我建议只输出到一个文件。
这不就是要输出到外部日志文件中记录的那种数据吗?就像上面的用户所说,格式化你的数据并将其保存到一个好的文件以便于阅读。
我有一个程序涉及解析代表核苷酸的字符串。
当我使用一个小的核苷酸串(基本上是一个小的 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 上是什么)。因此,我认为您的控制台只是移到下一行,因为它太长了。我建议只输出到一个文件。
这不就是要输出到外部日志文件中记录的那种数据吗?就像上面的用户所说,格式化你的数据并将其保存到一个好的文件以便于阅读。