我的问题是:如何替换“ A:A”或“ G:T” ...(生物学中的杂合子和纯合子)
我的代码:
for(int i = 0; i < index1.length(); i++){
if (index1.charAt(i) == 'A:A'){index2 = index1.append('1');}
else if (index1.charAt(i) == 'G:T'){index2 = index1.append('2');}
当我在eclipse中编辑代码时,“ charAt(i)=='A:A'”和“ .charAt(i)=='G:T'”显示了错误。
我想将字符串中的'A:A'和'G:T'替换为特定的数字(例如:A:A = 1,G:T = 2),如何实现呢?
谢谢,
最佳答案
如果始终要用A:A
替换1
,并用G:T
替换2
,则可以使用String
替换。
public void formatString(String input)
{
return input.replaceAll("A:A", "1").replaceAll("G:T", "2");
}
您可以根据需要链接许多
replace
方法!您无需确切知道它在哪里。 Java将为您做到这一点(它很聪明)。您只要告诉它您想要摆脱的东西,以及您想要的东西就可以了!另一个选择
另一个选择是使用数组实现在
heterozygotes
和它们各自的数字之间创建映射。您将拥有一个看起来像这样的字段:private String[] heterozygotes;
在您的构造函数中,您可以构建它:
public MyClass()
{
heterozygotes = {"A:A", "G:T"};
}
现在,在位置
A:A
处有0
,在位置G:T
处有1
,因此可以在方法中使用它,如下所示:public void formatString(String input)
{
for(int x = 0; x < heterozygotes.length; x++) {
//EG: A:A is as position 0, so replace with 0 + 1 = 1.
input = input.replace(heterozygotes[x], String.valueOf(x + 1));
}
return input;
}
这样,您所需要做的就是为数组初始化添加值,而您将永远不需要更改方法。