我必须做的问题如下
public static String randomDNAString(int dnaLength) / ** * @param dnaLength一个非负int * @return一个随机String 长度dnaLength由四个字符A,T,G和C * /
组成
我以为我做得对(虽然效率极低)但它没有返回任何东西。这是我的代码。任何帮助表示赞赏。
public static String randomDNAString(int dnaLength){
Random rand = new Random();
char[] dna;
dna = new char[dnaLength];
for(int i = 0; i<dnaLength;i++){
int tempC = rand.nextInt(4);
if(tempC == 0)
dna[i] = 'A';
if(tempC == 1)
dna[i] = 'G';
if(tempC == 2)
dna[i] = 'C';
if(tempC == 3)
dna[i] = 'T';
}
return (java.util.Arrays.toString(dna));
}
答案 0 :(得分:2)
使用StringBuilder
的其他答案的建议是一个很好的建议。但是,您可以使这更简单:
public static String randomDNAString(int dnaLength) {
Random rand = new Random();
StringBuilder dna = new StringBuilder(dnaLength);
for (int i = 0; i < dnaLength; i++) {
dna.append("ACGT".charAt(rand.nextInt(4)));
}
return dna.toString();
}
答案 1 :(得分:0)
我们可以通过将if链更改为switch
语句并使用StringBuilder
来改进您的答案。
public static String randomDNAString(int dnaLength) {
Random rand = new Random();
StringBuilder dna = new StringBuilder();
for(int i=0;i<dnaLength;i++) {
switch(rand.nextInt(4)) {
case 0:
dna.append("A");
break;
case 1:
dna.append("C");
break;
case 2:
dna.append("G");
break;
case 3:
dna.append("T");
break;
}
}
return dna.toString();
}
要打印输出,请尝试:
System.out.println(randomDNAString(10));
答案 2 :(得分:0)
这没什么不对。我只是愚蠢,当我在主要的时候打电话给我使用
randomDNAString(20);
而不是
System.out.println(randomDNAString(20));
感谢大家的帮助,有时我只是笨蛋