java - 如何更换杂合子?

标签 java

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

相关文章:

java - CardLayout性能?

java - 如何自动访问strings.xml? (安卓)

java - setOnPageChangeListener 不调用 onPageSelected

Java 检查列表中的元素是否出现在所有事件中

java - 使用动态规划改变硬币

java - 将新的 JavaDoc 附加到来自 super 方法的现有 JavaDoc

java - Java 中的 CRC32 哈希

java - 在不安装 Eclipse 的情况下运行 RCP 应用程序

Java堆硬盘

java - setMapoutputkeyclass和setMapoutputvalueclass方法