题目描述:
在DNA字符串中,符号“A”和“T”是彼此的互补,如“C”和“G”。你有DNA的一个功能(字符串,除了Haskell); 你需要得到另一个互补的一面。 DNA链永远不会是空的或根本没有DNA(再次,除了Haskell)。
解题java代码:
public class DnaStrand {
public static String makeComplement(String dna) {
StringBuilder builder = new StringBuilder();
for(int i=0;i<dna.length();i++){
if(dna.charAt(i)=='A') builder.append('T');
if(dna.charAt(i)=='T') builder.append('A');
if(dna.charAt(i)=='C') builder.append('G');
if(dna.charAt(i)=='G') builder.append('C');
}
return builder.toString();
}
}
使用Java中的System.Text.StringBuilder类来解决本题。
通过用一个重载的构造函数方法初始化变量可以创建StringBuilder类的新实例。
StringBuilder类下的方法名有:
1)StringBuilder.Append 将信息追加到当前 StringBuilder 的结尾。
StringBuilder a = new StringBuilder();
a.append("a");
a.append("bc");
return a.toString();//输出结果是“abc”
2)StringBuilder.AppendFormat 用带格式文本替换字符串中传递的格式说明符。
int Price= 12;
StringBuilder b= new StringBuilder("Your total is ");
b.AppendFormat("{0:C} ", Price);
return b.toString();//输出结果为“Your total is $12”
3)StringBuilder.Insert 将字符串或对象插入到当前 StringBuilder 对象的指定索引处。
StringBuilder c = new StringBuilder("Hello World!");
c.Insert(6,"Beautiful ");
return c.toString();//输出“Hello BeautifulWorld!”
4)StringBuilder.Remove 从当前 StringBuilder 对象中移除指定数量的字符。
StringBuilder d = new StringBuilder("Hello World!");
d.Remove(5,7);
Console.WriteLine(d);//输出的结果是“Hello”
5)StringBuilder.Replace 替换指定索引处的指定字符。
StringBuilder e = new StringBuilder("Hello World!");
e.Replace('!', '?');
Console.WriteLine(e);//输出结果是“Hello World?”