繁体   English   中英

如何迭代字符串对象中的特定元素(arraylist Java)

[英]how to iterate over specific elements in string objects (arraylist Java)

ArrayList<String> dnaArray = new ArrayList<>();
ArrayList<Character> compArray = new ArrayList<Character>();

// [tac, tat, tta, aaa, aac, aca, aac, ttt]

public void createCompliment() {
    for (String letters : dnaArray) {
        for (int i = 0, len = letters.length(); i < len; i++) {
            char character = letters.charAt(i);
            if (character == 'a'){
                character = 't';
            } else if (character == 'c') {
                character = 'g';
            }
            compArray.add(character);
        }
    }
}

我将如何访问特定字符,将“a”更改为“t”,类似地从“c”更改为“g”。 然后添加到新的 arraylist 并返回如下内容:

[ttg,ttt,ttt,ttt,ttg,tgt,ttg,ttt]

代替: [t,t,g,t,t,t,t,t,t,t,t,t,t,t,g,t,g,t,t,t,g,t,t,吨]

欣赏它

我认为最简单的方法是使用字符串替换:

ArrayList<String> dnaArray = new ArrayList<>();
ArrayList<String> compArray = new ArrayList<String>();

public void createCompliment() {
    for (String letters : dnaArray) {
        compArray.add(letters.replace('a', 't').replace('c', 'g'));
    }
}

您可以使用StringBuilder()创建新的 String 然后将其添加到compArray

尝试这个:

for(String letters : dnaArray) {
    StringBuilder sb = new StringBuilder();
    for(int i=0; i<letters.length(); i++) {
        char character = letters.charAt(i);
        if (character == 'a'){
            sb.append("t");
        }
        else if (character == 'c'){
            sb.append("g");
        } else {
            sb.append(String.valueOf(character));
        }
    }
    compArray.add(sb.toString());
}

Output:

[ttg, ttt, ttt, ttt, ttg, tgt, ttg, ttt]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM