作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好的,所以我被要求创建一个方法pplementWC(),其工作原理如下:
public String complementWC()
返回 Watson Crick 补集,它是表示互补 DNA 链(即双螺旋中的另一条链)的字符串。因此,将所有 T 替换为 A,所有 A 替换为 T,所有 C 替换为 G,所有 G 替换为 C。
这就是我设法做到的:
private String dna;
public String complementWC(){
String dnaWC = "";
for(int i=0;i<dna.length();i++){
if(dna.charAt(i) == 'T'){
dna.replace(dna.charAt(i), 'A');
}
if(dna.charAt(i) == 'A'){
dna.replace(dna.charAt(i), 'T');
}
if(dna.charAt(i) == 'C'){
dna.replace(dna.charAt(i), 'G');
}
if(dna.charAt(i) == 'G'){
dna.replace(dna.charAt(i), 'C');
}
dnaWC = dna;
}
return dnaWC;
}
现在的问题是这个方法只返回原始 DNA 而不是 WCcomplement。因此,我不确定如何将 for 循环内的字符串存储到名为“dnaWC”的新字符串中。
最佳答案
字符串是不可变的。当您调用 replace
时,它会返回一个新字符串,而不是更改原始字符串,并且您会立即忽略返回的字符串。这就是为什么你的原始字符串从未改变。
您可以使用StringBuilder
构建一个新字符串,这将节省每次替换字符时创建新字符串的开销,因为只会创建一个新字符串。
public String complementWC(){
StringBuilder builder = new StringBuilder();
for(int i=0;i<dna.length();i++){
char c = dna.charAt(i);
if(dna.charAt(i) == 'T'){
builder.append('A');
}
if(dna.charAt(i) == 'A'){
builder.append('T');
}
if(dna.charAt(i) == 'C'){
builder.append('G');
}
if(dna.charAt(i) == 'G'){
builder.append('T');
}
}
return builder.toString();
}
关于java - 创建一个方法来返回 DNA 链的 WC 补体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15143295/
补: Rest 风格请求处理的的内容补充(1) Rest风格请求:注意事项和细节 客户端是PostMan 可以直接发送Put,delete等方式请求,可不设置Filter 如果哟啊
我是一名优秀的程序员,十分优秀!