我的问题是:如何替换“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 会为你做这件事(这很聪明)。您只需告诉它您想要摆脱什么,以及您想要在其位置上放置什么!
只是另一种选择
您的另一个选择是使用数组实现在您的杂合子
与其各自的数字之间创建映射。您将有一个如下所示的字段:
private String[] heterozygotes;
在你的构造函数中你可以构建它:
public MyClass()
{
heterozygotes = {"A:A", "G:T"};
}
现在,您在位置 0
处得到了 A:A
,在位置 1
处得到了 G:T
,因此您可以在您的方法中使用它,如下所示:
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;
}
这样,您所需要做的就是向数组初始化添加值,并且永远不需要更改方法。
关于java - 如何更换杂合子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20338211/