我的问题是:如何替换“ 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;
}


这样,您所需要做的就是为数组初始化添加值,而您将永远不需要更改方法。

07-27 18:13